home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1993-01-17 | 18.5 KB | [ TEXT/MPS ]
open in: MacOS 8.1
extracted
|
Win98
extracted
|
DOS
extracted
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary ).
Confidence Program Detection Match Type Support
10%
dexvert
MacBinary (archive/macBinary)
fallback
Supported
1%
dexvert
MS-DOS Code Page Info (other/dosCodePage)
ext
Unsupported
1%
dexvert
Text File (text/txt)
fallback
Supported
100%
file
MacBinary II, Sun Jan 17 14:06:58 1993, modified Sun Jan 17 14:06:58 1993, creator 'MPS ', type ASCII, 18115 bytes "GUSIDispatch.cp" , at 0x4743 614 bytes resource
default (weak)
99%
file
data
default
74%
TrID
Macintosh plain text (MacBinary)
default
25%
TrID
MacBinary 2
default (weak)
100%
siegfried
fmt/1762 MacBinary (II)
default
100%
lsar
MacBinary
default
id metadata key value macFileType [ TEXT] macFileCreator [ MPS ]
hex view +--------+-------------------------+-------------------------+--------+--------+ |00000000| 00 0f 47 55 53 49 44 69 | 73 70 61 74 63 68 2e 63 |..GUSIDi|spatch.c| |00000010| 70 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |p.......|........| |00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000040| 00 54 45 58 54 4d 50 53 | 20 00 00 00 00 00 00 00 |.TEXTMPS| .......| |00000050| 00 00 00 00 00 46 c3 00 | 00 02 66 a7 7f 5e d2 a7 |.....F..|..f..^..| |00000060| 7f 5e d2 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.^......|........| |00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 12 0d 00 00 |........|........| |00000080| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********| |00000090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000000a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000000b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000000c0| 2a 2a 2a 2a 2a 2a 0d 50 | 72 6f 6a 65 63 74 09 3a |******.P|roject.:| |000000d0| 09 47 55 53 49 09 09 09 | 09 2d 09 47 72 61 6e 64 |.GUSI...|.-.Grand| |000000e0| 20 55 6e 69 66 69 65 64 | 20 53 6f 63 6b 65 74 20 | Unified| Socket | |000000f0| 49 6e 74 65 72 66 61 63 | 65 0d 46 69 6c 65 09 09 |Interfac|e.File..| |00000100| 3a 09 47 55 53 49 44 69 | 73 70 61 74 63 68 2e 63 |:.GUSIDi|spatch.c| |00000110| 70 2d 09 44 69 73 70 61 | 74 63 68 20 63 61 6c 6c |p-.Dispa|tch call| |00000120| 73 20 74 6f 20 74 68 65 | 69 72 20 63 6f 72 72 65 |s to the|ir corre| |00000130| 63 74 20 72 65 63 69 70 | 69 65 6e 74 0d 41 75 74 |ct recip|ient.Aut| |00000140| 68 6f 72 09 3a 09 4d 61 | 74 74 68 69 61 73 20 4e |hor.:.Ma|tthias N| |00000150| 65 65 72 61 63 68 65 72 | 0d 53 74 61 72 74 65 64 |eeracher|.Started| |00000160| 09 3a 09 32 34 4d 61 72 | 39 32 09 09 09 09 09 09 |.:.24Mar|92......| |00000170| 09 09 4c 61 6e 67 75 61 | 67 65 09 3a 09 4d 50 57 |..Langua|ge.:.MPW| |00000180| 20 43 2f 43 2b 2b 0d 4d | 6f 64 69 66 69 65 64 09 | C/C++.M|odified.| |00000190| 3a 09 33 31 4d 61 72 39 | 32 09 4d 4e 09 75 6e 69 |:.31Mar9|2.MN.uni| |000001a0| 78 20 64 6f 6d 61 69 6e | 20 73 6f 63 6b 65 74 20 |x domain| socket | |000001b0| 63 61 6c 6c 73 0d 09 09 | 09 09 31 36 41 70 72 39 |calls...|..16Apr9| |000001c0| 32 09 4d 4e 09 55 73 65 | 72 20 69 6e 74 65 72 72 |2.MN.Use|r interr| |000001d0| 75 70 74 20 73 74 75 66 | 66 0d 09 09 09 09 31 37 |upt stuf|f.....17| |000001e0| 41 70 72 39 32 09 4d 4e | 09 53 70 69 6e 20 72 6f |Apr92.MN|.Spin ro| |000001f0| 75 74 69 6e 65 73 0d 09 | 09 09 09 31 38 41 70 72 |utines..|...18Apr| |00000200| 39 32 09 4d 4e 09 43 68 | 61 6e 67 65 64 20 72 65 |92.MN.Ch|anged re| |00000210| 61 64 2f 77 72 69 74 65 | 2f 73 65 6e 64 2f 72 65 |ad/write|/send/re| |00000220| 63 76 20 64 69 73 70 61 | 74 63 68 65 72 73 0d 09 |cv dispa|tchers..| |00000230| 09 09 09 31 39 41 70 72 | 39 32 09 4d 4e 09 43 2b |...19Apr|92.MN.C+| |00000240| 2b 20 52 65 77 72 69 74 | 65 0d 09 09 09 09 30 36 |+ Rewrit|e.....06| |00000250| 4a 75 6e 39 32 09 4d 4e | 09 46 65 61 74 75 72 65 |Jun92.MN|.Feature| |00000260| 0d 09 09 09 09 32 37 4a | 75 6e 39 32 09 4d 4e 09 |.....27J|un92.MN.| |00000270| 63 68 6f 6f 73 65 28 29 | 2c 20 68 61 73 4e 65 77 |choose()|, hasNew| |00000280| 53 46 0d 09 09 09 09 31 | 33 4a 75 6c 39 32 09 4d |SF.....1|3Jul92.M| |00000290| 4e 09 68 61 73 50 72 6f | 63 65 73 73 4d 67 72 0d |N.hasPro|cessMgr.| |000002a0| 09 09 09 09 33 30 4a 75 | 6c 39 32 09 4d 4e 09 46 |....30Ju|l92.MN.F| |000002b0| 65 61 74 75 72 65 73 20 | 77 69 74 68 20 69 6e 69 |eatures |with ini| |000002c0| 74 69 61 6c 69 7a 65 72 | 73 0d 09 09 09 09 30 33 |tializer|s.....03| |000002d0| 41 75 67 39 32 09 4d 4e | 09 4d 6f 76 65 20 53 63 |Aug92.MN|.Move Sc| |000002e0| 61 74 74 65 72 2f 47 61 | 74 68 65 72 20 74 6f 20 |atter/Ga|ther to | |000002f0| 47 55 53 49 42 75 66 66 | 65 72 2e 63 70 0d 09 09 |GUSIBuff|er.cp...| |00000300| 09 09 30 35 41 75 67 39 | 32 09 4d 4e 09 43 68 61 |..05Aug9|2.MN.Cha| |00000310| 6e 67 65 20 74 68 65 20 | 77 61 79 20 73 74 61 6e |nge the |way stan| |00000320| 64 61 72 64 20 49 2f 4f | 20 63 68 61 6e 6e 65 6c |dard I/O| channel| |00000330| 73 20 61 72 65 20 6f 70 | 65 6e 65 64 0d 09 09 09 |s are op|ened....| |00000340| 09 33 30 41 75 67 39 32 | 09 4d 4e 09 4d 6f 76 65 |.30Aug92|.MN.Move| |00000350| 20 68 61 73 50 50 43 20 | 74 6f 20 47 55 53 49 50 | hasPPC |to GUSIP| |00000360| 50 43 2e 63 70 2c 20 41 | 70 70 6c 65 54 61 6c 6b |PC.cp, A|ppleTalk| |00000370| 49 64 65 6e 74 69 74 79 | 0d 09 09 09 09 31 32 53 |Identity|.....12S| |00000380| 65 70 39 32 09 4d 4e 09 | 67 65 74 64 74 61 62 6c |ep92.MN.|getdtabl| |00000390| 65 73 69 7a 65 28 29 0d | 09 09 09 09 30 35 4f 63 |esize().|....05Oc| |000003a0| 74 39 32 09 4d 4e 09 53 | 6d 61 6c 6c 20 66 69 78 |t92.MN.S|mall fix| |000003b0| 20 69 6e 20 65 76 65 6e | 74 20 64 69 73 70 61 74 | in even|t dispat| |000003c0| 63 68 69 6e 67 0d 09 09 | 09 09 32 35 4e 6f 76 39 |ching...|..25Nov9| |000003d0| 32 09 4d 4e 09 53 74 69 | 6c 6c 20 74 72 79 69 6e |2.MN.Sti|ll tryin| |000003e0| 67 20 74 6f 20 67 65 74 | 20 73 74 61 6e 64 61 72 |g to get| standar| |000003f0| 64 20 64 65 73 63 72 69 | 70 74 6f 72 73 20 66 6f |d descri|ptors fo| |00000400| 72 20 73 74 61 6e 64 61 | 6c 6f 6e 65 20 70 72 6f |r standa|lone pro| |00000410| 67 72 61 6d 73 20 72 69 | 67 68 74 2e 20 73 69 67 |grams ri|ght. sig| |00000420| 68 2e 0d 09 09 09 09 30 | 33 4a 61 6e 39 33 09 4d |h......0|3Jan93.M| |00000430| 4e 09 47 55 53 49 43 6f | 6e 66 69 67 75 72 61 74 |N.GUSICo|nfigurat| |00000440| 69 6f 6e 0d 09 09 09 09 | 31 37 4a 61 6e 39 33 09 |ion.....|17Jan93.| |00000450| 4d 4e 09 42 65 20 6d 6f | 72 65 20 63 61 72 65 66 |MN.Be mo|re caref| |00000460| 75 6c 20 61 62 6f 75 74 | 20 75 73 65 72 20 61 62 |ul about| user ab| |00000470| 6f 72 74 73 2e 0d 4c 61 | 73 74 09 09 3a 09 31 37 |orts..La|st..:.17| |00000480| 4a 61 6e 39 33 0d 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |Jan93.**|********| |00000490| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000004a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000004b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000004c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0d 0d 23 69 |********|***/..#i| |000004d0| 6e 63 6c 75 64 65 20 22 | 47 55 53 49 5f 50 2e 68 |nclude "|GUSI_P.h| |000004e0| 22 0d 23 69 6e 63 6c 75 | 64 65 20 22 53 65 74 4a |".#inclu|de "SetJ| |000004f0| 6d 70 2e 68 22 0d 23 69 | 6e 63 6c 75 64 65 20 22 |mp.h".#i|nclude "| |00000500| 53 69 67 6e 61 6c 2e 68 | 22 0d 23 69 6e 63 6c 75 |Signal.h|".#inclu| |00000510| 64 65 20 22 43 75 72 73 | 6f 72 43 74 6c 2e 68 22 |de "Curs|orCtl.h"| |00000520| 0d 23 69 6e 63 6c 75 64 | 65 20 22 52 65 73 6f 75 |.#includ|e "Resou| |00000530| 72 63 65 73 2e 68 22 0d | 23 69 6e 63 6c 75 64 65 |rces.h".|#include| |00000540| 20 22 45 76 65 6e 74 73 | 2e 68 22 0d 23 69 6e 63 | "Events|.h".#inc| |00000550| 6c 75 64 65 20 22 57 69 | 6e 64 6f 77 73 2e 68 22 |lude "Wi|ndows.h"| |00000560| 0d 23 69 6e 63 6c 75 64 | 65 20 22 44 65 73 6b 2e |.#includ|e "Desk.| |00000570| 68 22 0d 23 69 6e 63 6c | 75 64 65 20 22 53 63 72 |h".#incl|ude "Scr| |00000580| 69 70 74 2e 68 22 0d 23 | 69 6e 63 6c 75 64 65 20 |ipt.h".#|include | |00000590| 22 4f 53 45 76 65 6e 74 | 73 2e 68 22 0d 23 69 6e |"OSEvent|s.h".#in| |000005a0| 63 6c 75 64 65 20 22 54 | 72 61 70 73 2e 68 22 0d |clude "T|raps.h".| |000005b0| 23 69 6e 63 6c 75 64 65 | 20 22 43 6f 6d 6d 52 65 |#include| "CommRe| |000005c0| 73 6f 75 72 63 65 73 2e | 68 22 0d 23 69 6e 63 6c |sources.|h".#incl| |000005d0| 75 64 65 20 22 43 54 42 | 55 74 69 6c 69 74 69 65 |ude "CTB|Utilitie| |000005e0| 73 2e 68 22 0d 23 69 6e | 63 6c 75 64 65 20 22 43 |s.h".#in|clude "C| |000005f0| 6f 6e 6e 65 63 74 69 6f | 6e 73 2e 68 22 0d 23 69 |onnectio|ns.h".#i| |00000600| 6e 63 6c 75 64 65 20 22 | 46 69 6c 65 54 72 61 6e |nclude "|FileTran| |00000610| 73 66 65 72 73 2e 68 22 | 0d 23 69 6e 63 6c 75 64 |sfers.h"|.#includ| |00000620| 65 20 22 54 65 72 6d 69 | 6e 61 6c 73 2e 68 22 0d |e "Termi|nals.h".| |00000630| 0d 2f 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |./******|********| |00000640| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 20 |********|******* | |00000650| 47 6c 6f 62 61 6c 73 20 | 2a 2a 2a 2a 2a 2a 2a 2a |Globals |********| |00000660| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00000670| 2a 2a 2a 2a 2a 2a 2f 0d | 0d 63 6f 6e 73 74 20 47 |******/.|.const G| |00000680| 55 53 49 43 6f 6e 66 69 | 67 75 72 61 74 69 6f 6e |USIConfi|guration| |00000690| 20 47 55 53 49 43 6f 6e | 66 69 67 3b 0d 53 6f 63 | GUSICon|fig;.Soc| |000006a0| 6b 65 74 54 61 62 6c 65 | 09 09 09 09 09 53 6f 63 |ketTable|.....Soc| |000006b0| 6b 65 74 73 3b 0d 47 55 | 53 49 53 70 69 6e 46 6e |kets;.GU|SISpinFn| |000006c0| 20 09 09 09 09 09 73 70 | 69 6e 72 6f 75 74 69 6e | .....sp|inroutin| |000006d0| 65 20 3d 20 47 55 53 49 | 44 65 66 61 75 6c 74 53 |e = GUSI|DefaultS| |000006e0| 70 69 6e 3b 0d 73 74 61 | 74 69 63 20 47 55 53 49 |pin;.sta|tic GUSI| |000006f0| 45 76 74 48 61 6e 64 6c | 65 72 20 2a 09 65 76 74 |EvtHandl|er *.evt| |00000700| 48 61 6e 64 6c 65 72 09 | 3d 20 6e 69 6c 3b 0d 73 |Handler.|= nil;.s| |00000710| 74 61 74 69 63 20 73 68 | 6f 72 74 09 09 09 09 65 |tatic sh|ort....e| |00000720| 76 74 4d 61 73 6b 09 09 | 3d 20 30 3b 0d 0d 46 65 |vtMask..|= 0;..Fe| |00000730| 61 74 75 72 65 20 09 68 | 61 73 4d 61 6b 65 46 53 |ature .h|asMakeFS| |00000740| 53 70 65 63 28 0d 09 09 | 09 09 67 65 73 74 61 6c |Spec(...|..gestal| |00000750| 74 46 53 41 74 74 72 2c | 0d 09 09 09 09 28 31 3c |tFSAttr,|.....(1<| |00000760| 3c 67 65 73 74 61 6c 74 | 48 61 73 46 53 53 70 65 |<gestalt|HasFSSpe| |00000770| 63 43 61 6c 6c 73 29 2c | 0d 09 09 09 09 28 31 3c |cCalls),|.....(1<| |00000780| 3c 67 65 73 74 61 6c 74 | 48 61 73 46 53 53 70 65 |<gestalt|HasFSSpe| |00000790| 63 43 61 6c 6c 73 29 29 | 3b 0d 46 65 61 74 75 72 |cCalls))|;.Featur| |000007a0| 65 20 09 68 61 73 41 6c | 69 61 73 28 0d 09 09 09 |e .hasAl|ias(....| |000007b0| 09 67 65 73 74 61 6c 74 | 41 6c 69 61 73 4d 67 72 |.gestalt|AliasMgr| |000007c0| 41 74 74 72 2c 0d 09 09 | 09 09 28 31 3c 3c 67 65 |Attr,...|..(1<<ge| |000007d0| 73 74 61 6c 74 41 6c 69 | 61 73 4d 67 72 50 72 65 |staltAli|asMgrPre| |000007e0| 73 65 6e 74 29 2c 0d 09 | 09 09 09 28 31 3c 3c 67 |sent),..|...(1<<g| |000007f0| 65 73 74 61 6c 74 41 6c | 69 61 73 4d 67 72 50 72 |estaltAl|iasMgrPr| |00000800| 65 73 65 6e 74 29 29 3b | 0d 46 65 61 74 75 72 65 |esent));|.Feature| |00000810| 09 68 61 73 57 4e 45 28 | 5f 57 61 69 74 4e 65 78 |.hasWNE(|_WaitNex| |00000820| 74 45 76 65 6e 74 2c 20 | 54 6f 6f 6c 54 72 61 70 |tEvent, |ToolTrap| |00000830| 29 3b 0d 46 65 61 74 75 | 72 65 09 68 61 73 4e 65 |);.Featu|re.hasNe| |00000840| 77 53 46 28 0d 09 09 09 | 09 67 65 73 74 61 6c 74 |wSF(....|.gestalt| |00000850| 53 74 61 6e 64 61 72 64 | 46 69 6c 65 41 74 74 72 |Standard|FileAttr| |00000860| 2c 0d 09 09 09 09 28 31 | 3c 3c 67 65 73 74 61 6c |,.....(1|<<gestal| |00000870| 74 53 74 61 6e 64 61 72 | 64 46 69 6c 65 35 38 29 |tStandar|dFile58)| |00000880| 2c 0d 09 09 09 09 28 31 | 3c 3c 67 65 73 74 61 6c |,.....(1|<<gestal| |00000890| 74 53 74 61 6e 64 61 72 | 64 46 69 6c 65 35 38 29 |tStandar|dFile58)| |000008a0| 29 3b 0d 46 65 61 74 75 | 72 65 20 09 68 61 73 50 |);.Featu|re .hasP| |000008b0| 72 6f 63 65 73 73 4d 67 | 72 28 0d 09 09 09 09 67 |rocessMg|r(.....g| |000008c0| 65 73 74 61 6c 74 4f 53 | 41 74 74 72 2c 0d 09 09 |estaltOS|Attr,...| |000008d0| 09 09 28 31 3c 3c 67 65 | 73 74 61 6c 74 4c 61 75 |..(1<<ge|staltLau| |000008e0| 6e 63 68 43 6f 6e 74 72 | 6f 6c 29 2c 0d 09 09 09 |nchContr|ol),....| |000008f0| 09 28 31 3c 3c 67 65 73 | 74 61 6c 74 4c 61 75 6e |.(1<<ges|taltLaun| |00000900| 63 68 43 6f 6e 74 72 6f | 6c 29 29 3b 0d 46 65 61 |chContro|l));.Fea| |00000910| 74 75 72 65 20 68 61 73 | 43 52 4d 5f 50 28 0d 09 |ture has|CRM_P(..| |00000920| 09 09 09 67 65 73 74 61 | 6c 74 43 52 4d 41 74 74 |...gesta|ltCRMAtt| |00000930| 72 2c 0d 09 09 09 09 28 | 31 3c 3c 67 65 73 74 61 |r,.....(|1<<gesta| |00000940| 6c 74 43 52 4d 50 72 65 | 73 65 6e 74 29 2c 0d 09 |ltCRMPre|sent),..| |00000950| 09 09 09 28 31 3c 3c 67 | 65 73 74 61 6c 74 43 52 |...(1<<g|estaltCR| |00000960| 4d 50 72 65 73 65 6e 74 | 29 29 3b 0d 46 65 61 74 |MPresent|));.Feat| |00000970| 75 72 65 20 68 61 73 43 | 52 4d 28 68 61 73 43 52 |ure hasC|RM(hasCR| |00000980| 4d 5f 50 2c 20 49 6e 69 | 74 43 52 4d 29 3b 0d 46 |M_P, Ini|tCRM);.F| |00000990| 65 61 74 75 72 65 20 68 | 61 73 43 54 42 28 68 61 |eature h|asCTB(ha| |000009a0| 73 43 52 4d 2c 20 49 6e | 69 74 43 54 42 55 74 69 |sCRM, In|itCTBUti| |000009b0| 6c 69 74 69 65 73 29 3b | 0d 46 65 61 74 75 72 65 |lities);|.Feature| |000009c0| 20 68 61 73 53 74 64 4e | 42 50 5f 50 28 0d 09 09 | hasStdN|BP_P(...| |000009d0| 09 09 67 65 73 74 61 6c | 74 53 74 64 4e 42 50 41 |..gestal|tStdNBPA| |000009e0| 74 74 72 2c 0d 09 09 09 | 09 28 31 3c 3c 67 65 73 |ttr,....|.(1<<ges| |000009f0| 74 61 6c 74 53 74 64 4e | 42 50 50 72 65 73 65 6e |taltStdN|BPPresen| |00000a00| 74 29 2c 0d 09 09 09 09 | 28 31 3c 3c 67 65 73 74 |t),.....|(1<<gest| |00000a10| 61 6c 74 53 74 64 4e 42 | 50 50 72 65 73 65 6e 74 |altStdNB|PPresent| |00000a20| 29 29 3b 0d 46 65 61 74 | 75 72 65 20 68 61 73 53 |));.Feat|ure hasS| |00000a30| 74 64 4e 42 50 28 68 61 | 73 43 54 42 2c 20 68 61 |tdNBP(ha|sCTB, ha| |00000a40| 73 53 74 64 4e 42 50 5f | 50 29 3b 0d 46 65 61 74 |sStdNBP_|P);.Feat| |00000a50| 75 72 65 20 68 61 73 43 | 4d 28 68 61 73 43 54 42 |ure hasC|M(hasCTB| |00000a60| 2c 20 49 6e 69 74 43 4d | 29 3b 0d 46 65 61 74 75 |, InitCM|);.Featu| |00000a70| 72 65 20 68 61 73 46 54 | 28 68 61 73 43 54 42 2c |re hasFT|(hasCTB,| |00000a80| 20 49 6e 69 74 46 54 29 | 3b 0d 46 65 61 74 75 72 | InitFT)|;.Featur| |00000a90| 65 20 68 61 73 54 4d 28 | 68 61 73 43 54 42 2c 20 |e hasTM(|hasCTB, | |00000aa0| 49 6e 69 74 54 4d 29 3b | 0d 0d 2f 2a 2a 2a 2a 2a |InitTM);|../*****| |00000ab0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00000ac0| 2a 2a 20 47 55 53 49 43 | 6f 6e 66 69 67 75 72 61 |** GUSIC|onfigura| |00000ad0| 74 69 6f 6e 20 6d 65 6d | 62 65 72 73 20 2a 2a 2a |tion mem|bers ***| |00000ae0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00000af0| 2a 2a 2a 2a 2a 2f 0d 0d | 47 55 53 49 43 6f 6e 66 |*****/..|GUSIConf| |00000b00| 69 67 75 72 61 74 69 6f | 6e 3a 3a 47 55 53 49 43 |iguratio|n::GUSIC| |00000b10| 6f 6e 66 69 67 75 72 61 | 74 69 6f 6e 28 29 0d 7b |onfigura|tion().{| |00000b20| 0d 09 74 79 70 65 64 65 | 66 20 47 55 53 49 43 6f |..typede|f GUSICo| |00000b30| 6e 66 69 67 75 72 61 74 | 69 6f 6e 20 2a 2a 09 47 |nfigurat|ion **.G| |00000b40| 55 53 49 43 6f 6e 66 48 | 64 6c 3b 0d 09 47 55 53 |USIConfH|dl;..GUS| |00000b50| 49 43 6f 6e 66 48 64 6c | 20 63 6f 6e 66 69 67 20 |IConfHdl| config | |00000b60| 09 3d 09 47 55 53 49 43 | 6f 6e 66 48 64 6c 28 47 |.=.GUSIC|onfHdl(G| |00000b70| 65 74 52 65 73 6f 75 72 | 63 65 28 27 47 55 b7 49 |etResour|ce('GU.I| |00000b80| 27 2c 20 47 55 53 49 52 | 73 72 63 49 44 29 29 3b |', GUSIR|srcID));| |00000b90| 0d 09 6c 6f 6e 67 09 09 | 09 63 6f 6e 66 53 69 7a |..long..|.confSiz| |00000ba0| 65 09 3d 09 63 6f 6e 66 | 69 67 20 3f 20 47 65 74 |e.=.conf|ig ? Get| |00000bb0| 48 61 6e 64 6c 65 53 69 | 7a 65 28 48 61 6e 64 6c |HandleSi|ze(Handl| |00000bc0| 65 28 63 6f 6e 66 69 67 | 29 29 20 3a 20 30 3b 0d |e(config|)) : 0;.| |00000bd0| 09 0d 09 64 65 66 61 75 | 6c 74 54 79 70 65 20 3d |...defau|ltType =| |00000be0| 20 0d 09 09 28 63 6f 6e | 66 53 69 7a 65 20 3e 3d | ...(con|fSize >=| |00000bf0| 20 34 20 26 26 20 28 2a | 63 6f 6e 66 69 67 29 2d | 4 && (*|config)-| |00000c00| 3e 64 65 66 61 75 6c 74 | 54 79 70 65 29 20 3f 20 |>default|Type) ? | |00000c10| 28 2a 63 6f 6e 66 69 67 | 29 2d 3e 64 65 66 61 75 |(*config|)->defau| |00000c20| 6c 74 54 79 70 65 20 3a | 20 27 54 45 58 54 27 3b |ltType :| 'TEXT';| |00000c30| 0d 09 64 65 66 61 75 6c | 74 43 72 65 61 74 6f 72 |..defaul|tCreator| |00000c40| 20 3d 20 0d 09 09 28 63 | 6f 6e 66 53 69 7a 65 20 | = ...(c|onfSize | |00000c50| 3e 3d 20 38 20 26 26 20 | 28 2a 63 6f 6e 66 69 67 |>= 8 && |(*config| |00000c60| 29 2d 3e 64 65 66 61 75 | 6c 74 43 72 65 61 74 6f |)->defau|ltCreato| |00000c70| 72 29 20 3f 20 28 2a 63 | 6f 6e 66 69 67 29 2d 3e |r) ? (*c|onfig)->| |00000c80| 64 65 66 61 75 6c 74 43 | 72 65 61 74 6f 72 20 3a |defaultC|reator :| |00000c90| 20 27 4d 50 53 20 27 3b | 0d 09 61 75 74 6f 53 70 | 'MPS ';|..autoSp| |00000ca0| 69 6e 20 3d 20 0d 09 09 | 28 63 6f 6e 66 53 69 7a |in = ...|(confSiz| |00000cb0| 65 20 3e 3d 20 39 20 26 | 26 20 28 2a 63 6f 6e 66 |e >= 9 &|& (*conf| |00000cc0| 69 67 29 2d 3e 61 75 74 | 6f 53 70 69 6e 29 20 3f |ig)->aut|oSpin) ?| |00000cd0| 20 28 2a 63 6f 6e 66 69 | 67 29 2d 3e 61 75 74 6f | (*confi|g)->auto| |00000ce0| 53 70 69 6e 20 3a 20 74 | 72 75 65 3b 0d 7d 0d 0d |Spin : t|rue;.}..| |00000cf0| 76 6f 69 64 20 47 55 53 | 49 43 6f 6e 66 69 67 75 |void GUS|IConfigu| |00000d00| 72 61 74 69 6f 6e 3a 3a | 53 65 74 44 65 66 61 75 |ration::|SetDefau| |00000d10| 6c 74 46 54 79 70 65 28 | 63 6f 6e 73 74 20 54 46 |ltFType(|const TF| |00000d20| 69 6c 65 53 70 65 63 20 | 26 20 6e 61 6d 65 29 20 |ileSpec |& name) | |00000d30| 63 6f 6e 73 74 0d 7b 0d | 09 46 49 6e 66 6f 09 69 |const.{.|.FInfo.i| |00000d40| 6e 66 6f 3b 09 0d 0d 09 | 69 66 20 28 48 47 65 74 |nfo;....|if (HGet| |00000d50| 46 49 6e 66 6f 28 6e 61 | 6d 65 2e 76 52 65 66 4e |FInfo(na|me.vRefN| |00000d60| 75 6d 2c 20 6e 61 6d 65 | 2e 70 61 72 49 44 2c 20 |um, name|.parID, | |00000d70| 6e 61 6d 65 2e 6e 61 6d | 65 2c 20 26 69 6e 66 6f |name.nam|e, &info| |00000d80| 29 29 0d 09 09 72 65 74 | 75 72 6e 3b 0d 0d 09 69 |))...ret|urn;...i| |00000d90| 6e 66 6f 2e 66 64 54 79 | 70 65 20 09 3d 09 64 65 |nfo.fdTy|pe .=.de| |00000da0| 66 61 75 6c 74 54 79 70 | 65 3b 0d 09 69 6e 66 6f |faultTyp|e;..info| |00000db0| 2e 66 64 43 72 65 61 74 | 6f 72 09 3d 09 64 65 66 |.fdCreat|or.=.def| |00000dc0| 61 75 6c 74 43 72 65 61 | 74 6f 72 3b 0d 09 0d 09 |aultCrea|tor;....| |00000dd0| 48 53 65 74 46 49 6e 66 | 6f 28 6e 61 6d 65 2e 76 |HSetFInf|o(name.v| |00000de0| 52 65 66 4e 75 6d 2c 20 | 6e 61 6d 65 2e 70 61 72 |RefNum, |name.par| |00000df0| 49 44 2c 20 6e 61 6d 65 | 2e 6e 61 6d 65 2c 20 26 |ID, name|.name, &| |00000e00| 69 6e 66 6f 29 3b 0d 7d | 0d 0d 69 6e 6c 69 6e 65 |info);.}|..inline| |00000e10| 20 76 6f 69 64 20 47 55 | 53 49 43 6f 6e 66 69 67 | void GU|SIConfig| |00000e20| 75 72 61 74 69 6f 6e 3a | 3a 44 6f 41 75 74 6f 53 |uration:|:DoAutoS| |00000e30| 70 69 6e 28 29 20 63 6f | 6e 73 74 20 0d 7b 0d 09 |pin() co|nst .{..| |00000e40| 69 66 20 28 61 75 74 6f | 53 70 69 6e 29 0d 09 09 |if (auto|Spin)...| |00000e50| 53 41 46 45 53 50 49 4e | 28 30 2c 20 53 50 5f 4d |SAFESPIN|(0, SP_M| |00000e60| 49 53 43 2c 20 30 29 3b | 0d 7d 0d 0d 2f 2a 2a 2a |ISC, 0);|.}../***| |00000e70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00000e80| 2a 2a 2a 2a 2a 20 45 78 | 74 65 72 6e 61 6c 20 72 |***** Ex|ternal r| |00000e90| 6f 75 74 69 6e 65 73 20 | 2a 2a 2a 2a 2a 2a 2a 2a |outines |********| |00000ea0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00000eb0| 2a 2f 0d 0d 69 6e 74 20 | 67 65 74 64 74 61 62 6c |*/..int |getdtabl| |00000ec0| 65 73 69 7a 65 28 29 0d | 7b 0d 09 72 65 74 75 72 |esize().|{..retur| |00000ed0| 6e 20 47 55 53 49 5f 4d | 41 58 5f 46 44 3b 0d 7d |n GUSI_M|AX_FD;.}| |00000ee0| 0d 0d 69 6e 74 20 73 6f | 63 6b 65 74 28 69 6e 74 |..int so|cket(int| |00000ef0| 20 64 6f 6d 61 69 6e 2c | 20 69 6e 74 20 74 79 70 | domain,| int typ| |00000f00| 65 2c 20 73 68 6f 72 74 | 20 70 72 6f 74 6f 63 6f |e, short| protoco| |00000f10| 6c 29 0d 7b 0d 09 53 6f | 63 6b 65 74 44 6f 6d 61 |l).{..So|cketDoma| |00000f20| 69 6e 20 2a 09 64 6f 6d | 3b 0d 09 53 6f 63 6b 65 |in *.dom|;..Socke| |00000f30| 74 20 2a 20 09 09 73 6f | 63 6b 3b 0d 09 69 6e 74 |t * ..so|ck;..int| |00000f40| 09 09 09 09 66 64 3b 0d | 0d 09 69 66 20 28 64 6f |....fd;.|..if (do| |00000f50| 6d 20 3d 20 53 6f 63 6b | 65 74 44 6f 6d 61 69 6e |m = Sock|etDomain| |00000f60| 3a 3a 44 6f 6d 61 69 6e | 28 64 6f 6d 61 69 6e 29 |::Domain|(domain)| |00000f70| 29 0d 09 09 69 66 20 28 | 73 6f 63 6b 20 3d 20 64 |)...if (|sock = d| |00000f80| 6f 6d 2d 3e 73 6f 63 6b | 65 74 28 74 79 70 65 2c |om->sock|et(type,| |00000f90| 20 70 72 6f 74 6f 63 6f | 6c 29 29 0d 09 09 09 69 | protoco|l))....i| |00000fa0| 66 20 28 28 66 64 20 3d | 20 53 6f 63 6b 65 74 73 |f ((fd =| Sockets| |00000fb0| 2e 49 6e 73 74 61 6c 6c | 28 73 6f 63 6b 29 29 20 |.Install|(sock)) | |00000fc0| 21 3d 20 2d 31 29 0d 09 | 09 09 09 72 65 74 75 72 |!= -1)..|...retur| |00000fd0| 6e 20 66 64 3b 0d 09 09 | 09 65 6c 73 65 0d 09 09 |n fd;...|.else...| |00000fe0| 09 09 64 65 6c 65 74 65 | 20 73 6f 63 6b 3b 0d 0d |..delete| sock;..| |00000ff0| 09 72 65 74 75 72 6e 20 | 2d 31 3b 0d 7d 0d 0d 65 |.return |-1;.}..e| |00001000| 78 74 65 72 6e 20 22 43 | 22 20 69 6e 74 20 66 69 |xtern "C|" int fi| |00001010| 6c 65 5f 6f 70 65 6e 28 | 63 6f 6e 73 74 20 63 68 |le_open(|const ch| |00001020| 61 72 20 2a 20 6e 61 6d | 65 2c 20 69 6e 74 20 66 |ar * nam|e, int f| |00001030| 6c 61 67 73 29 3b 0d 65 | 78 74 65 72 6e 20 42 6f |lags);.e|xtern Bo| |00001040| 6f 6c 65 61 6e 20 49 73 | 44 65 76 69 63 65 28 63 |olean Is|Device(c| |00001050| 6f 6e 73 74 20 63 68 61 | 72 20 2a 20 66 6e 29 3b |onst cha|r * fn);| |00001060| 0d 0d 69 6e 74 20 6f 70 | 65 6e 28 63 6f 6e 73 74 |..int op|en(const| |00001070| 20 63 68 61 72 20 2a 20 | 66 69 6c 65 6e 61 6d 65 | char * |filename| |00001080| 2c 20 69 6e 74 20 6f 66 | 6c 61 67 29 0d 7b 0d 09 |, int of|lag).{..| |00001090| 65 78 74 65 72 6e 20 69 | 6e 74 20 53 74 61 6e 64 |extern i|nt Stand| |000010a0| 41 6c 6f 6e 65 3b 0d 09 | 73 74 61 74 69 63 20 69 |Alone;..|static i| |000010b0| 6e 74 20 69 67 6e 6f 72 | 65 20 3d 20 33 3b 0d 0d |nt ignor|e = 3;..| |000010c0| 09 69 66 20 28 53 74 61 | 6e 64 41 6c 6f 6e 65 20 |.if (Sta|ndAlone | |000010d0| 26 26 20 69 67 6e 6f 72 | 65 20 26 26 20 49 73 44 |&& ignor|e && IsD| |000010e0| 65 76 69 63 65 28 66 69 | 6c 65 6e 61 6d 65 29 29 |evice(fi|lename))| |000010f0| 20 7b 09 09 2f 2f 20 53 | 74 61 6e 64 61 6c 6f 6e | {..// S|tandalon| |00001100| 65 20 70 72 6f 67 72 61 | 6d 73 20 6f 70 65 6e 20 |e progra|ms open | |00001110| 63 6f 6e 73 6f 6c 65 20 | 6d 61 6e 75 61 6c 6c 79 |console |manually| |00001120| 0d 09 09 2d 2d 69 67 6e | 6f 72 65 3b 0d 09 09 72 |...--ign|ore;...r| |00001130| 65 74 75 72 6e 20 66 69 | 6c 65 5f 6f 70 65 6e 28 |eturn fi|le_open(| |00001140| 66 69 6c 65 6e 61 6d 65 | 2c 20 6f 66 6c 61 67 29 |filename|, oflag)| |00001150| 3b 0d 09 7d 0d 0d 09 53 | 6f 63 6b 65 74 20 2a 20 |;..}...S|ocket * | |00001160| 73 6f 63 6b 3b 0d 09 69 | 6e 74 09 09 66 64 3b 0d |sock;..i|nt..fd;.| |00001170| 0d 09 69 66 20 28 73 6f | 63 6b 20 3d 20 46 69 6c |..if (so|ck = Fil| |00001180| 65 53 6f 63 6b 65 74 73 | 2e 6f 70 65 6e 28 66 69 |eSockets|.open(fi| |00001190| 6c 65 6e 61 6d 65 2c 20 | 6f 66 6c 61 67 29 29 09 |lename, |oflag)).| |000011a0| 7b 0d 09 09 69 66 20 28 | 28 66 64 20 3d 20 53 6f |{...if (|(fd = So| |000011b0| 63 6b 65 74 73 2e 49 6e | 73 74 61 6c 6c 28 73 6f |ckets.In|stall(so| |000011c0| 63 6b 29 29 20 21 3d 20 | 2d 31 29 0d 09 09 09 72 |ck)) != |-1)....r| |000011d0| 65 74 75 72 6e 20 66 64 | 3b 0d 09 09 65 6c 73 65 |eturn fd|;...else| |000011e0| 0d 09 09 09 64 65 6c 65 | 74 65 20 73 6f 63 6b 3b |....dele|te sock;| |000011f0| 0d 09 7d 0d 0d 09 72 65 | 74 75 72 6e 20 2d 31 3b |..}...re|turn -1;| |00001200| 0d 7d 0d 0d 69 6e 74 20 | 63 68 6f 6f 73 65 28 69 |.}..int |choose(i| |00001210| 6e 74 20 64 6f 6d 61 69 | 6e 2c 20 69 6e 74 20 74 |nt domai|n, int t| |00001220| 79 70 65 2c 20 63 68 61 | 72 20 2a 20 70 72 6f 6d |ype, cha|r * prom| |00001230| 70 74 2c 20 76 6f 69 64 | 20 2a 20 63 6f 6e 73 74 |pt, void| * const| |00001240| 72 61 69 6e 74 2c 20 69 | 6e 74 20 66 6c 61 67 73 |raint, i|nt flags| |00001250| 2c 20 76 6f 69 64 20 2a | 20 6e 61 6d 65 2c 20 69 |, void *| name, i| |00001260| 6e 74 20 2a 20 6e 61 6d | 65 6c 65 6e 29 0d 7b 0d |nt * nam|elen).{.| |00001270| 09 53 6f 63 6b 65 74 44 | 6f 6d 61 69 6e 20 2a 09 |.SocketD|omain *.| |00001280| 64 6f 6d 3b 0d 0d 09 69 | 66 20 28 64 6f 6d 20 3d |dom;...i|f (dom =| |00001290| 20 53 6f 63 6b 65 74 44 | 6f 6d 61 69 6e 3a 3a 44 | SocketD|omain::D| |000012a0| 6f 6d 61 69 6e 28 64 6f | 6d 61 69 6e 29 29 0d 09 |omain(do|main))..| |000012b0| 09 72 65 74 75 72 6e 20 | 64 6f 6d 2d 3e 63 68 6f |.return |dom->cho| |000012c0| 6f 73 65 28 74 79 70 65 | 2c 20 70 72 6f 6d 70 74 |ose(type|, prompt| |000012d0| 2c 20 63 6f 6e 73 74 72 | 61 69 6e 74 2c 20 66 6c |, constr|aint, fl| |000012e0| 61 67 73 2c 20 6e 61 6d | 65 2c 20 6e 61 6d 65 6c |ags, nam|e, namel| |000012f0| 65 6e 29 3b 0d 0d 09 72 | 65 74 75 72 6e 20 2d 31 |en);...r|eturn -1| |00001300| 3b 0d 7d 0d 0d 69 6e 74 | 20 62 69 6e 64 28 69 6e |;.}..int| bind(in| |00001310| 74 20 73 2c 20 76 6f 69 | 64 20 2a 6e 61 6d 65 2c |t s, voi|d *name,| |00001320| 20 69 6e 74 20 6e 61 6d | 65 6c 65 6e 29 0d 7b 0d | int nam|elen).{.| |00001330| 09 53 6f 63 6b 65 74 20 | 2a 09 73 6f 63 6b 09 3d |.Socket |*.sock.=| |00001340| 09 53 6f 63 6b 65 74 73 | 5b 73 5d 3b 0d 0d 09 72 |.Sockets|[s];...r| |00001350| 65 74 75 72 6e 20 73 6f | 63 6b 20 3f 20 73 6f 63 |eturn so|ck ? soc| |00001360| 6b 2d 3e 62 69 6e 64 28 | 6e 61 6d 65 2c 20 6e 61 |k->bind(|name, na| |00001370| 6d 65 6c 65 6e 29 20 3a | 20 2d 31 3b 0d 7d 0d 0d |melen) :| -1;.}..| |00001380| 69 6e 74 20 63 6f 6e 6e | 65 63 74 28 69 6e 74 20 |int conn|ect(int | |00001390| 73 2c 20 76 6f 69 64 20 | 2a 61 64 64 72 2c 20 69 |s, void |*addr, i| |000013a0| 6e 74 20 61 64 64 72 6c | 65 6e 29 0d 7b 0d 09 53 |nt addrl|en).{..S| |000013b0| 6f 63 6b 65 74 20 2a 09 | 73 6f 63 6b 09 3d 09 53 |ocket *.|sock.=.S| |000013c0| 6f 63 6b 65 74 73 5b 73 | 5d 3b 0d 0d 09 72 65 74 |ockets[s|];...ret| |000013d0| 75 72 6e 20 73 6f 63 6b | 20 3f 20 73 6f 63 6b 2d |urn sock| ? sock-| |000013e0| 3e 63 6f 6e 6e 65 63 74 | 28 61 64 64 72 2c 20 61 |>connect|(addr, a| |000013f0| 64 64 72 6c 65 6e 29 20 | 3a 20 2d 31 3b 0d 7d 0d |ddrlen) |: -1;.}.| |00001400| 0d 69 6e 74 20 6c 69 73 | 74 65 6e 28 69 6e 74 20 |.int lis|ten(int | |00001410| 73 2c 20 69 6e 74 20 71 | 6c 65 6e 29 0d 7b 0d 09 |s, int q|len).{..| |00001420| 53 6f 63 6b 65 74 20 2a | 09 73 6f 63 6b 09 3d 09 |Socket *|.sock.=.| |00001430| 53 6f 63 6b 65 74 73 5b | 73 5d 3b 0d 0d 09 72 65 |Sockets[|s];...re| |00001440| 74 75 72 6e 20 73 6f 63 | 6b 20 3f 20 73 6f 63 6b |turn soc|k ? sock| |00001450| 2d 3e 6c 69 73 74 65 6e | 28 71 6c 65 6e 29 20 3a |->listen|(qlen) :| |00001460| 20 2d 31 3b 0d 7d 0d 0d | 69 6e 74 20 61 63 63 65 | -1;.}..|int acce| |00001470| 70 74 28 69 6e 74 20 73 | 2c 20 76 6f 69 64 20 2a |pt(int s|, void *| |00001480| 61 64 64 72 2c 20 69 6e | 74 20 2a 61 64 64 72 6c |addr, in|t *addrl| |00001490| 65 6e 29 0d 7b 0d 09 53 | 6f 63 6b 65 74 20 2a 09 |en).{..S|ocket *.| |000014a0| 73 6f 63 6b 09 3d 09 53 | 6f 63 6b 65 74 73 5b 73 |sock.=.S|ockets[s| |000014b0| 5d 3b 0d 0d 09 69 66 20 | 28 73 6f 63 6b 29 0d 09 |];...if |(sock)..| |000014c0| 09 69 66 20 28 73 6f 63 | 6b 09 3d 20 73 6f 63 6b |.if (soc|k.= sock| |000014d0| 2d 3e 61 63 63 65 70 74 | 28 61 64 64 72 2c 20 61 |->accept|(addr, a| |000014e0| 64 64 72 6c 65 6e 29 29 | 0d 09 09 09 69 66 20 28 |ddrlen))|....if (| |000014f0| 28 73 20 3d 20 53 6f 63 | 6b 65 74 73 2e 49 6e 73 |(s = Soc|kets.Ins| |00001500| 74 61 6c 6c 28 73 6f 63 | 6b 29 29 20 21 3d 20 2d |tall(soc|k)) != -| |00001510| 31 29 0d 09 09 09 09 72 | 65 74 75 72 6e 20 73 3b |1).....r|eturn s;| |00001520| 0d 09 09 09 65 6c 73 65 | 0d 09 09 09 09 64 65 6c |....else|.....del| |00001530| 65 74 65 20 73 6f 63 6b | 3b 0d 0d 09 72 65 74 75 |ete sock|;...retu| |00001540| 72 6e 20 2d 31 3b 0d 7d | 0d 0d 69 6e 74 20 63 6c |rn -1;.}|..int cl| |00001550| 6f 73 65 28 69 6e 74 20 | 73 29 0d 7b 0d 09 72 65 |ose(int |s).{..re| |00001560| 74 75 72 6e 20 53 6f 63 | 6b 65 74 73 2e 52 65 6d |turn Soc|kets.Rem| |00001570| 6f 76 65 28 73 29 3b 0d | 7d 0d 0d 69 6e 74 20 72 |ove(s);.|}..int r| |00001580| 65 61 64 28 69 6e 74 20 | 73 2c 20 63 68 61 72 20 |ead(int |s, char | |00001590| 2a 62 75 66 66 65 72 2c | 20 75 6e 73 69 67 6e 65 |*buffer,| unsigne| |000015a0| 64 20 62 75 66 6c 65 6e | 29 0d 7b 0d 09 47 55 53 |d buflen|).{..GUS| |000015b0| 49 43 6f 6e 66 69 67 2e | 44 6f 41 75 74 6f 53 70 |IConfig.|DoAutoSp| |000015c0| 69 6e 28 29 3b 0d 09 0d | 09 53 6f 63 6b 65 74 20 |in();...|.Socket | |000015d0| 2a 09 73 6f 63 6b 09 3d | 09 53 6f 63 6b 65 74 73 |*.sock.=|.Sockets| |000015e0| 5b 73 5d 3b 0d 0d 09 72 | 65 74 75 72 6e 20 73 6f |[s];...r|eturn so| |000015f0| 63 6b 20 3f 20 73 6f 63 | 6b 2d 3e 72 65 61 64 28 |ck ? soc|k->read(| |00001600| 62 75 66 66 65 72 2c 20 | 62 75 66 6c 65 6e 29 20 |buffer, |buflen) | |00001610| 3a 20 2d 31 3b 0d 7d 0d | 0d 69 6e 74 20 72 65 61 |: -1;.}.|.int rea| |00001620| 64 76 28 69 6e 74 20 73 | 2c 20 73 74 72 75 63 74 |dv(int s|, struct| |00001630| 20 69 6f 76 65 63 20 2a | 69 6f 76 2c 20 69 6e 74 | iovec *|iov, int| |00001640| 20 63 6f 75 6e 74 29 0d | 7b 0d 09 47 55 53 49 43 | count).|{..GUSIC| |00001650| 6f 6e 66 69 67 2e 44 6f | 41 75 74 6f 53 70 69 6e |onfig.Do|AutoSpin| |00001660| 28 29 3b 0d 09 0d 09 53 | 6f 63 6b 65 74 20 2a 09 |();....S|ocket *.| |00001670| 73 6f 63 6b 09 3d 09 53 | 6f 63 6b 65 74 73 5b 73 |sock.=.S|ockets[s| |00001680| 5d 3b 0d 0d 09 69 66 20 | 28 73 6f 63 6b 29 09 7b |];...if |(sock).{| |00001690| 0d 09 09 53 63 61 74 74 | 65 72 65 72 09 73 63 61 |...Scatt|erer.sca| |000016a0| 74 74 28 69 6f 76 2c 20 | 63 6f 75 6e 74 29 3b 0d |tt(iov, |count);.| |000016b0| 0d 09 09 69 66 20 28 73 | 63 61 74 74 29 0d 09 09 |...if (s|catt)...| |000016c0| 09 72 65 74 75 72 6e 20 | 73 63 61 74 74 2e 6c 65 |.return |scatt.le| |000016d0| 6e 67 74 68 28 73 6f 63 | 6b 2d 3e 72 65 61 64 28 |ngth(soc|k->read(| |000016e0| 73 63 61 74 74 2e 62 75 | 66 66 65 72 28 29 2c 20 |scatt.bu|ffer(), | |000016f0| 73 63 61 74 74 2e 62 75 | 66 6c 65 6e 28 29 29 29 |scatt.bu|flen()))| |00001700| 3b 0d 09 09 65 6c 73 65 | 0d 09 09 09 72 65 74 75 |;...else|....retu| |00001710| 72 6e 20 47 55 53 49 5f | 65 72 72 6f 72 28 45 4e |rn GUSI_|error(EN| |00001720| 4f 4d 45 4d 29 3b 0d 09 | 7d 20 65 6c 73 65 0d 09 |OMEM);..|} else..| |00001730| 09 72 65 74 75 72 6e 20 | 2d 31 3b 0d 7d 0d 0d 69 |.return |-1;.}..i| |00001740| 6e 74 20 72 65 63 76 28 | 69 6e 74 20 73 2c 20 76 |nt recv(|int s, v| |00001750| 6f 69 64 20 2a 62 75 66 | 66 65 72 2c 20 69 6e 74 |oid *buf|fer, int| |00001760| 20 62 75 66 6c 65 6e 2c | 20 69 6e 74 20 66 6c 61 | buflen,| int fla| |00001770| 67 73 29 0d 7b 0d 09 47 | 55 53 49 43 6f 6e 66 69 |gs).{..G|USIConfi| |00001780| 67 2e 44 6f 41 75 74 6f | 53 70 69 6e 28 29 3b 0d |g.DoAuto|Spin();.| |00001790| 09 0d 09 69 6e 74 20 09 | 09 66 72 6f 6d 6c 65 6e |...int .|.fromlen| |000017a0| 20 09 3d 09 30 3b 0d 09 | 53 6f 63 6b 65 74 20 2a | .=.0;..|Socket *| |000017b0| 09 73 6f 63 6b 09 09 3d | 09 53 6f 63 6b 65 74 73 |.sock..=|.Sockets| |000017c0| 5b 73 5d 3b 0d 0d 09 72 | 65 74 75 72 6e 20 73 6f |[s];...r|eturn so| |000017d0| 63 6b 20 3f 20 73 6f 63 | 6b 2d 3e 72 65 63 76 66 |ck ? soc|k->recvf| |000017e0| 72 6f 6d 28 62 75 66 66 | 65 72 2c 20 62 75 66 6c |rom(buff|er, bufl| |000017f0| 65 6e 2c 20 66 6c 61 67 | 73 2c 20 6e 69 6c 2c 20 |en, flag|s, nil, | |00001800| 26 66 72 6f 6d 6c 65 6e | 29 20 3a 20 2d 31 3b 0d |&fromlen|) : -1;.| |00001810| 7d 0d 0d 69 6e 74 20 72 | 65 63 76 66 72 6f 6d 28 |}..int r|ecvfrom(| |00001820| 69 6e 74 20 73 2c 20 76 | 6f 69 64 20 2a 62 75 66 |int s, v|oid *buf| |00001830| 66 65 72 2c 20 69 6e 74 | 20 62 75 66 6c 65 6e 2c |fer, int| buflen,| |00001840| 20 69 6e 74 20 66 6c 61 | 67 73 2c 20 76 6f 69 64 | int fla|gs, void| |00001850| 20 2a 66 72 6f 6d 2c 20 | 69 6e 74 20 2a 66 72 6f | *from, |int *fro| |00001860| 6d 6c 65 6e 29 0d 7b 0d | 09 47 55 53 49 43 6f 6e |mlen).{.|.GUSICon| |00001870| 66 69 67 2e 44 6f 41 75 | 74 6f 53 70 69 6e 28 29 |fig.DoAu|toSpin()| |00001880| 3b 0d 09 0d 09 53 6f 63 | 6b 65 74 20 2a 09 73 6f |;....Soc|ket *.so| |00001890| 63 6b 09 3d 09 53 6f 63 | 6b 65 74 73 5b 73 5d 3b |ck.=.Soc|kets[s];| |000018a0| 0d 0d 09 72 65 74 75 72 | 6e 20 73 6f 63 6b 20 3f |...retur|n sock ?| |000018b0| 20 73 6f 63 6b 2d 3e 72 | 65 63 76 66 72 6f 6d 28 | sock->r|ecvfrom(| |000018c0| 62 75 66 66 65 72 2c 20 | 62 75 66 6c 65 6e 2c 20 |buffer, |buflen, | |000018d0| 66 6c 61 67 73 2c 20 66 | 72 6f 6d 2c 20 66 72 6f |flags, f|rom, fro| |000018e0| 6d 6c 65 6e 29 20 3a 20 | 2d 31 3b 0d 7d 0d 0d 69 |mlen) : |-1;.}..i| |000018f0| 6e 74 20 72 65 63 76 6d | 73 67 28 69 6e 74 20 73 |nt recvm|sg(int s| |00001900| 2c 20 73 74 72 75 63 74 | 20 6d 73 67 68 64 72 20 |, struct| msghdr | |00001910| 2a 6d 73 67 2c 20 69 6e | 74 20 66 6c 61 67 73 29 |*msg, in|t flags)| |00001920| 0d 7b 0d 09 47 55 53 49 | 43 6f 6e 66 69 67 2e 44 |.{..GUSI|Config.D| |00001930| 6f 41 75 74 6f 53 70 69 | 6e 28 29 3b 0d 09 0d 09 |oAutoSpi|n();....| |00001940| 53 6f 63 6b 65 74 20 2a | 09 73 6f 63 6b 09 3d 09 |Socket *|.sock.=.| |00001950| 53 6f 63 6b 65 74 73 5b | 73 5d 3b 0d 0d 09 69 66 |Sockets[|s];...if| |00001960| 20 28 73 6f 63 6b 29 09 | 7b 0d 09 09 53 63 61 74 | (sock).|{...Scat| |00001970| 74 65 72 65 72 09 73 63 | 61 74 74 28 6d 73 67 2d |terer.sc|att(msg-| |00001980| 3e 6d 73 67 5f 69 6f 76 | 2c 20 6d 73 67 2d 3e 6d |>msg_iov|, msg->m| |00001990| 73 67 5f 69 6f 76 6c 65 | 6e 29 3b 0d 0d 09 09 69 |sg_iovle|n);....i| |000019a0| 66 20 28 73 63 61 74 74 | 29 0d 09 09 09 72 65 74 |f (scatt|)....ret| |000019b0| 75 72 6e 0d 09 09 09 09 | 73 63 61 74 74 2e 6c 65 |urn.....|scatt.le| |000019c0| 6e 67 74 68 28 0d 09 09 | 09 09 09 73 6f 63 6b 2d |ngth(...|...sock-| |000019d0| 3e 72 65 63 76 66 72 6f | 6d 28 0d 09 09 09 09 09 |>recvfro|m(......| |000019e0| 09 73 63 61 74 74 2e 62 | 75 66 66 65 72 28 29 2c |.scatt.b|uffer(),| |000019f0| 0d 09 09 09 09 09 09 73 | 63 61 74 74 2e 62 75 66 |.......s|catt.buf| |00001a00| 6c 65 6e 28 29 2c 0d 09 | 09 09 09 09 09 66 6c 61 |len(),..|.....fla| |00001a10| 67 73 2c 0d 09 09 09 09 | 09 09 6d 73 67 2d 3e 6d |gs,.....|..msg->m| |00001a20| 73 67 5f 6e 61 6d 65 2c | 0d 09 09 09 09 09 09 26 |sg_name,|.......&| |00001a30| 6d 73 67 2d 3e 6d 73 67 | 5f 6e 61 6d 65 6c 65 6e |msg->msg|_namelen| |00001a40| 29 29 3b 0d 09 09 65 6c | 73 65 0d 09 09 09 72 65 |));...el|se....re| |00001a50| 74 75 72 6e 20 47 55 53 | 49 5f 65 72 72 6f 72 28 |turn GUS|I_error(| |00001a60| 45 4e 4f 4d 45 4d 29 3b | 0d 09 7d 20 65 6c 73 65 |ENOMEM);|..} else| |00001a70| 0d 09 09 72 65 74 75 72 | 6e 20 2d 31 3b 0d 7d 0d |...retur|n -1;.}.| |00001a80| 0d 69 6e 74 20 77 72 69 | 74 65 28 69 6e 74 20 73 |.int wri|te(int s| |00001a90| 2c 20 63 6f 6e 73 74 20 | 63 68 61 72 20 2a 62 75 |, const |char *bu| |00001aa0| 66 66 65 72 2c 20 75 6e | 73 69 67 6e 65 64 20 62 |ffer, un|signed b| |00001ab0| 75 66 6c 65 6e 29 0d 7b | 0d 09 47 55 53 49 43 6f |uflen).{|..GUSICo| |00001ac0| 6e 66 69 67 2e 44 6f 41 | 75 74 6f 53 70 69 6e 28 |nfig.DoA|utoSpin(| |00001ad0| 29 3b 0d 09 0d 09 53 6f | 63 6b 65 74 20 2a 09 73 |);....So|cket *.s| |00001ae0| 6f 63 6b 09 3d 09 53 6f | 63 6b 65 74 73 5b 73 5d |ock.=.So|ckets[s]| |00001af0| 3b 0d 0d 09 72 65 74 75 | 72 6e 20 73 6f 63 6b 20 |;...retu|rn sock | |00001b00| 3f 20 73 6f 63 6b 2d 3e | 77 72 69 74 65 28 28 63 |? sock->|write((c| |00001b10| 68 61 72 20 2a 29 20 62 | 75 66 66 65 72 2c 20 62 |har *) b|uffer, b| |00001b20| 75 66 6c 65 6e 29 20 3a | 20 2d 31 3b 0d 7d 0d 0d |uflen) :| -1;.}..| |00001b30| 69 6e 74 20 77 72 69 74 | 65 76 28 69 6e 74 20 73 |int writ|ev(int s| |00001b40| 2c 20 73 74 72 75 63 74 | 20 69 6f 76 65 63 20 2a |, struct| iovec *| |00001b50| 69 6f 76 2c 20 69 6e 74 | 20 63 6f 75 6e 74 29 0d |iov, int| count).| |00001b60| 7b 0d 09 47 55 53 49 43 | 6f 6e 66 69 67 2e 44 6f |{..GUSIC|onfig.Do| |00001b70| 41 75 74 6f 53 70 69 6e | 28 29 3b 0d 09 0d 09 53 |AutoSpin|();....S| |00001b80| 6f 63 6b 65 74 20 2a 09 | 73 6f 63 6b 09 3d 09 53 |ocket *.|sock.=.S| |00001b90| 6f 63 6b 65 74 73 5b 73 | 5d 3b 0d 0d 09 69 66 20 |ockets[s|];...if | |00001ba0| 28 73 6f 63 6b 29 09 7b | 0d 09 09 47 61 74 68 65 |(sock).{|...Gathe| |00001bb0| 72 65 72 09 67 61 74 68 | 28 69 6f 76 2c 20 63 6f |rer.gath|(iov, co| |00001bc0| 75 6e 74 29 3b 0d 0d 09 | 09 69 66 20 28 67 61 74 |unt);...|.if (gat| |00001bd0| 68 29 0d 09 09 09 72 65 | 74 75 72 6e 20 67 61 74 |h)....re|turn gat| |00001be0| 68 2e 6c 65 6e 67 74 68 | 28 73 6f 63 6b 2d 3e 77 |h.length|(sock->w| |00001bf0| 72 69 74 65 28 67 61 74 | 68 2e 62 75 66 66 65 72 |rite(gat|h.buffer| |00001c00| 28 29 2c 20 67 61 74 68 | 2e 62 75 66 6c 65 6e 28 |(), gath|.buflen(| |00001c10| 29 29 29 3b 0d 09 09 65 | 6c 73 65 0d 09 09 09 72 |)));...e|lse....r| |00001c20| 65 74 75 72 6e 20 47 55 | 53 49 5f 65 72 72 6f 72 |eturn GU|SI_error| |00001c30| 28 45 4e 4f 4d 45 4d 29 | 3b 0d 09 7d 20 65 6c 73 |(ENOMEM)|;..} els| |00001c40| 65 0d 09 09 72 65 74 75 | 72 6e 20 2d 31 3b 0d 7d |e...retu|rn -1;.}| |00001c50| 0d 0d 69 6e 74 20 73 65 | 6e 64 28 69 6e 74 20 73 |..int se|nd(int s| |00001c60| 2c 20 76 6f 69 64 20 2a | 62 75 66 66 65 72 2c 20 |, void *|buffer, | |00001c70| 69 6e 74 20 62 75 66 6c | 65 6e 2c 20 69 6e 74 20 |int bufl|en, int | |00001c80| 66 6c 61 67 73 29 0d 7b | 0d 09 47 55 53 49 43 6f |flags).{|..GUSICo| |00001c90| 6e 66 69 67 2e 44 6f 41 | 75 74 6f 53 70 69 6e 28 |nfig.DoA|utoSpin(| |00001ca0| 29 3b 0d 09 0d 09 53 6f | 63 6b 65 74 20 2a 09 73 |);....So|cket *.s| |00001cb0| 6f 63 6b 09 3d 09 53 6f | 63 6b 65 74 73 5b 73 5d |ock.=.So|ckets[s]| |00001cc0| 3b 0d 0d 09 72 65 74 75 | 72 6e 20 73 6f 63 6b 20 |;...retu|rn sock | |00001cd0| 3f 20 73 6f 63 6b 2d 3e | 73 65 6e 64 74 6f 28 62 |? sock->|sendto(b| |00001ce0| 75 66 66 65 72 2c 20 62 | 75 66 6c 65 6e 2c 20 66 |uffer, b|uflen, f| |00001cf0| 6c 61 67 73 2c 20 6e 69 | 6c 2c 20 30 29 20 3a 20 |lags, ni|l, 0) : | |00001d00| 2d 31 3b 0d 7d 0d 0d 69 | 6e 74 20 73 65 6e 64 74 |-1;.}..i|nt sendt| |00001d10| 6f 28 69 6e 74 20 73 2c | 20 76 6f 69 64 20 2a 62 |o(int s,| void *b| |00001d20| 75 66 66 65 72 2c 20 69 | 6e 74 20 62 75 66 6c 65 |uffer, i|nt bufle| |00001d30| 6e 2c 20 69 6e 74 20 66 | 6c 61 67 73 2c 20 76 6f |n, int f|lags, vo| |00001d40| 69 64 20 2a 74 6f 2c 20 | 69 6e 74 20 74 6f 6c 65 |id *to, |int tole| |00001d50| 6e 29 0d 7b 0d 09 47 55 | 53 49 43 6f 6e 66 69 67 |n).{..GU|SIConfig| |00001d60| 2e 44 6f 41 75 74 6f 53 | 70 69 6e 28 29 3b 0d 09 |.DoAutoS|pin();..| |00001d70| 0d 09 53 6f 63 6b 65 74 | 20 2a 09 73 6f 63 6b 09 |..Socket| *.sock.| |00001d80| 3d 09 53 6f 63 6b 65 74 | 73 5b 73 5d 3b 0d 0d 09 |=.Socket|s[s];...| |00001d90| 72 65 74 75 72 6e 20 73 | 6f 63 6b 20 3f 20 73 6f |return s|ock ? so| |00001da0| 63 6b 2d 3e 73 65 6e 64 | 74 6f 28 62 75 66 66 65 |ck->send|to(buffe| |00001db0| 72 2c 20 62 75 66 6c 65 | 6e 2c 20 66 6c 61 67 73 |r, bufle|n, flags| |00001dc0| 2c 20 74 6f 2c 20 74 6f | 6c 65 6e 29 20 3a 20 2d |, to, to|len) : -| |00001dd0| 31 3b 0d 7d 0d 0d 69 6e | 74 20 73 65 6e 64 6d 73 |1;.}..in|t sendms| |00001de0| 67 28 69 6e 74 20 73 2c | 73 74 72 75 63 74 20 6d |g(int s,|struct m| |00001df0| 73 67 68 64 72 20 2a 6d | 73 67 2c 69 6e 74 20 66 |sghdr *m|sg,int f| |00001e00| 6c 61 67 73 29 0d 7b 0d | 09 47 55 53 49 43 6f 6e |lags).{.|.GUSICon| |00001e10| 66 69 67 2e 44 6f 41 75 | 74 6f 53 70 69 6e 28 29 |fig.DoAu|toSpin()| |00001e20| 3b 0d 09 0d 09 53 6f 63 | 6b 65 74 20 2a 09 73 6f |;....Soc|ket *.so| |00001e30| 63 6b 09 3d 09 53 6f 63 | 6b 65 74 73 5b 73 5d 3b |ck.=.Soc|kets[s];| |00001e40| 0d 0d 09 69 66 20 28 73 | 6f 63 6b 29 09 7b 0d 09 |...if (s|ock).{..| |00001e50| 09 47 61 74 68 65 72 65 | 72 09 67 61 74 68 28 6d |.Gathere|r.gath(m| |00001e60| 73 67 2d 3e 6d 73 67 5f | 69 6f 76 2c 20 6d 73 67 |sg->msg_|iov, msg| |00001e70| 2d 3e 6d 73 67 5f 69 6f | 76 6c 65 6e 29 3b 0d 0d |->msg_io|vlen);..| |00001e80| 09 09 69 66 20 28 67 61 | 74 68 29 0d 09 09 09 72 |..if (ga|th)....r| |00001e90| 65 74 75 72 6e 0d 09 09 | 09 09 67 61 74 68 2e 6c |eturn...|..gath.l| |00001ea0| 65 6e 67 74 68 28 0d 09 | 09 09 09 09 73 6f 63 6b |ength(..|....sock| |00001eb0| 2d 3e 73 65 6e 64 74 6f | 28 0d 09 09 09 09 09 09 |->sendto|(.......| |00001ec0| 67 61 74 68 2e 62 75 66 | 66 65 72 28 29 2c 0d 09 |gath.buf|fer(),..| |00001ed0| 09 09 09 09 09 67 61 74 | 68 2e 62 75 66 6c 65 6e |.....gat|h.buflen| |00001ee0| 28 29 2c 0d 09 09 09 09 | 09 09 66 6c 61 67 73 2c |(),.....|..flags,| |00001ef0| 0d 09 09 09 09 09 09 6d | 73 67 2d 3e 6d 73 67 5f |.......m|sg->msg_| |00001f00| 6e 61 6d 65 2c 0d 09 09 | 09 09 09 09 6d 73 67 2d |name,...|....msg-| |00001f10| 3e 6d 73 67 5f 6e 61 6d | 65 6c 65 6e 29 29 3b 0d |>msg_nam|elen));.| |00001f20| 09 09 65 6c 73 65 0d 09 | 09 09 72 65 74 75 72 6e |..else..|..return| |00001f30| 20 47 55 53 49 5f 65 72 | 72 6f 72 28 45 4e 4f 4d | GUSI_er|ror(ENOM| |00001f40| 45 4d 29 3b 0d 09 7d 20 | 65 6c 73 65 0d 09 09 72 |EM);..} |else...r| |00001f50| 65 74 75 72 6e 20 2d 31 | 3b 0d 7d 0d 0d 69 6e 74 |eturn -1|;.}..int| |00001f60| 20 73 65 6c 65 63 74 28 | 69 6e 74 20 77 69 64 74 | select(|int widt| |00001f70| 68 2c 20 66 64 5f 73 65 | 74 20 2a 72 65 61 64 66 |h, fd_se|t *readf| |00001f80| 64 73 2c 20 66 64 5f 73 | 65 74 20 2a 77 72 69 74 |ds, fd_s|et *writ| |00001f90| 65 66 64 73 2c 20 66 64 | 5f 73 65 74 20 2a 65 78 |efds, fd|_set *ex| |00001fa0| 63 65 70 74 66 64 73 2c | 20 73 74 72 75 63 74 20 |ceptfds,| struct | |00001fb0| 74 69 6d 65 76 61 6c 20 | 2a 74 69 6d 65 6f 75 74 |timeval |*timeout| |00001fc0| 29 0d 7b 0d 09 53 6f 63 | 6b 65 74 09 2a 09 73 6f |).{..Soc|ket.*.so| |00001fd0| 63 6b 3b 0d 09 6c 6f 6e | 67 20 09 09 09 63 6f 75 |ck;..lon|g ...cou| |00001fe0| 6e 74 3b 0d 09 69 6e 74 | 20 09 09 09 73 3b 0d 09 |nt;..int| ...s;..| |00001ff0| 6c 6f 6e 67 20 09 09 09 | 73 74 61 72 74 74 69 6d |long ...|starttim| |00002000| 65 2c 20 77 61 69 74 74 | 69 6d 65 3b 0d 09 66 64 |e, waitt|ime;..fd| |00002010| 5f 73 65 74 20 09 09 72 | 64 2c 20 77 64 2c 20 65 |_set ..r|d, wd, e| |00002020| 64 3b 0d 09 42 6f 6f 6c | 65 61 6e 09 09 72 2c 77 |d;..Bool|ean..r,w| |00002030| 2c 65 3b 0d 09 42 6f 6f | 6c 65 61 6e 20 2a 09 63 |,e;..Boo|lean *.c| |00002040| 61 6e 52 65 61 64 3b 0d | 09 42 6f 6f 6c 65 61 6e |anRead;.|.Boolean| |00002050| 20 2a 09 63 61 6e 57 72 | 69 74 65 3b 0d 09 42 6f | *.canWr|ite;..Bo| |00002060| 6f 6c 65 61 6e 20 2a 09 | 65 78 63 65 70 74 69 6f |olean *.|exceptio| |00002070| 6e 3b 0d 0d 09 63 6f 75 | 6e 74 20 3d 20 30 3b 0d |n;...cou|nt = 0;.| |00002080| 09 46 44 5f 5a 45 52 4f | 28 26 72 64 29 3b 0d 09 |.FD_ZERO|(&rd);..| |00002090| 46 44 5f 5a 45 52 4f 28 | 26 77 64 29 3b 0d 09 46 |FD_ZERO(|&wd);..F| |000020a0| 44 5f 5a 45 52 4f 28 26 | 65 64 29 3b 0d 0d 09 69 |D_ZERO(&|ed);...i| |000020b0| 66 20 28 74 69 6d 65 6f | 75 74 29 20 7b 0d 09 09 |f (timeo|ut) {...| |000020c0| 77 61 69 74 74 69 6d 65 | 20 3d 20 20 74 69 6d 65 |waittime| = time| |000020d0| 6f 75 74 2d 3e 74 76 5f | 73 65 63 2a 36 30 20 2b |out->tv_|sec*60 +| |000020e0| 20 74 69 6d 65 6f 75 74 | 2d 3e 74 76 5f 75 73 65 | timeout|->tv_use| |000020f0| 63 2f 31 36 36 36 36 3b | 0d 09 09 73 74 61 72 74 |c/16666;|...start| |00002100| 74 69 6d 65 20 3d 20 54 | 69 63 6b 43 6f 75 6e 74 |time = T|ickCount| |00002110| 28 29 3b 0d 09 7d 0d 0d | 09 2f 2f 20 43 68 65 63 |();..}..|.// Chec| |00002120| 6b 20 66 69 6c 65 73 20 | 66 6f 72 20 6b 6f 73 68 |k files |for kosh| |00002130| 65 72 6e 65 73 73 0d 0d | 09 66 6f 72 20 28 73 20 |erness..|.for (s | |00002140| 3d 20 30 3b 20 73 20 3c | 20 77 69 64 74 68 20 3b |= 0; s <| width ;| |00002150| 20 2b 2b 73 29 0d 09 09 | 69 66 20 28 09 28 72 65 | ++s)...|if (.(re| |00002160| 61 64 66 64 73 20 26 26 | 20 46 44 5f 49 53 53 45 |adfds &&| FD_ISSE| |00002170| 54 28 73 2c 72 65 61 64 | 66 64 73 29 29 0d 09 09 |T(s,read|fds))...| |00002180| 09 7c 7c 09 28 77 72 69 | 74 65 66 64 73 20 26 26 |.||.(wri|tefds &&| |00002190| 20 46 44 5f 49 53 53 45 | 54 28 73 2c 77 72 69 74 | FD_ISSE|T(s,writ| |000021a0| 65 66 64 73 29 29 0d 09 | 09 09 7c 7c 09 28 65 78 |efds))..|..||.(ex| |000021b0| 63 65 70 74 66 64 73 20 | 26 26 20 46 44 5f 49 53 |ceptfds |&& FD_IS| |000021c0| 53 45 54 28 73 2c 65 78 | 63 65 70 74 66 64 73 29 |SET(s,ex|ceptfds)| |000021d0| 29 0d 09 09 29 0d 09 09 | 09 69 66 20 28 21 53 6f |)...)...|.if (!So| |000021e0| 63 6b 65 74 73 5b 73 5d | 29 0d 09 09 09 09 72 65 |ckets[s]|).....re| |000021f0| 74 75 72 6e 20 47 55 53 | 49 5f 65 72 72 6f 72 28 |turn GUS|I_error(| |00002200| 45 42 41 44 46 29 3b 0d | 0d 09 64 6f 20 7b 0d 09 |EBADF);.|..do {..| |00002210| 09 66 6f 72 20 28 73 20 | 3d 20 30 3b 20 73 20 3c |.for (s |= 0; s <| |00002220| 20 77 69 64 74 68 20 3b | 20 2b 2b 73 29 20 20 7b | width ;| ++s) {| |00002230| 0d 09 09 09 69 66 20 28 | 73 6f 63 6b 20 3d 20 53 |....if (|sock = S| |00002240| 6f 63 6b 65 74 73 5b 73 | 5d 29 20 7b 0d 09 09 09 |ockets[s|]) {....| |00002250| 09 72 20 3d 20 66 61 6c | 73 65 3b 0d 09 09 09 09 |.r = fal|se;.....| |00002260| 77 20 3d 20 66 61 6c 73 | 65 3b 0d 09 09 09 09 65 |w = fals|e;.....e| |00002270| 20 3d 20 66 61 6c 73 65 | 3b 0d 0d 09 09 09 09 63 | = false|;......c| |00002280| 61 6e 52 65 61 64 20 3d | 20 28 72 65 61 64 66 64 |anRead =| (readfd| |00002290| 73 20 26 26 20 46 44 5f | 49 53 53 45 54 28 73 2c |s && FD_|ISSET(s,| |000022a0| 72 65 61 64 66 64 73 29 | 29 20 3f 20 26 72 20 3a |readfds)|) ? &r :| |000022b0| 20 6e 69 6c 3b 0d 09 09 | 09 09 63 61 6e 57 72 69 | nil;...|..canWri| |000022c0| 74 65 20 3d 20 28 77 72 | 69 74 65 66 64 73 20 26 |te = (wr|itefds &| |000022d0| 26 20 46 44 5f 49 53 53 | 45 54 28 73 2c 77 72 69 |& FD_ISS|ET(s,wri| |000022e0| 74 65 66 64 73 29 29 20 | 3f 20 26 77 20 3a 20 6e |tefds)) |? &w : n| |000022f0| 69 6c 3b 0d 09 09 09 09 | 65 78 63 65 70 74 69 6f |il;.....|exceptio| |00002300| 6e 20 3d 20 28 65 78 63 | 65 70 74 66 64 73 20 26 |n = (exc|eptfds &| |00002310| 26 20 46 44 5f 49 53 53 | 45 54 28 73 2c 65 78 63 |& FD_ISS|ET(s,exc| |00002320| 65 70 74 66 64 73 29 29 | 20 3f 20 26 65 20 3a 20 |eptfds))| ? &e : | |00002330| 6e 69 6c 3b 0d 0d 09 09 | 09 09 69 66 20 28 63 61 |nil;....|..if (ca| |00002340| 6e 52 65 61 64 20 7c 7c | ca 63 61 6e 57 72 69 74 |nRead |||.canWrit| |00002350| 65 20 7c 7c ca 65 78 63 | 65 70 74 69 6f 6e 29 09 |e ||.exc|eption).| |00002360| 7b 0d 09 09 09 09 09 63 | 6f 75 6e 74 09 2b 3d 20 |{......c|ount.+= | |00002370| 73 6f 63 6b 2d 3e 73 65 | 6c 65 63 74 28 63 61 6e |sock->se|lect(can| |00002380| 52 65 61 64 2c 20 63 61 | 6e 57 72 69 74 65 2c 20 |Read, ca|nWrite, | |00002390| 65 78 63 65 70 74 69 6f | 6e 29 3b 0d 0d 09 09 09 |exceptio|n);.....| |000023a0| 09 09 69 66 20 28 72 29 | 0d 09 09 09 09 09 09 46 |..if (r)|.......F| |000023b0| 44 5f 53 45 54 28 73 2c | 26 72 64 29 3b 0d 09 09 |D_SET(s,|&rd);...| |000023c0| 09 09 09 69 66 20 28 77 | 29 0d 09 09 09 09 09 09 |...if (w|).......| |000023d0| 46 44 5f 53 45 54 28 73 | 2c 26 77 64 29 3b 0d 09 |FD_SET(s|,&wd);..| |000023e0| 09 09 09 09 69 66 20 28 | 65 29 0d 09 09 09 09 09 |....if (|e)......| |000023f0| 09 46 44 5f 53 45 54 28 | 73 2c 26 65 64 29 3b 0d |.FD_SET(|s,&ed);.| |00002400| 09 09 09 09 7d 0d 09 09 | 09 7d 0d 09 09 7d 0d 09 |....}...|.}...}..| |00002410| 09 53 50 49 4e 28 66 61 | 6c 73 65 2c 20 53 50 5f |.SPIN(fa|lse, SP_| |00002420| 53 45 4c 45 43 54 2c 20 | 30 29 3b 0d 09 7d 20 20 |SELECT, |0);..} | |00002430| 77 68 69 6c 65 28 21 63 | 6f 75 6e 74 20 26 26 28 |while(!c|ount &&(| |00002440| 21 74 69 6d 65 6f 75 74 | 20 7c 7c 20 54 69 63 6b |!timeout| || Tick| |00002450| 43 6f 75 6e 74 28 29 20 | 2d 20 73 74 61 72 74 74 |Count() |- startt| |00002460| 69 6d 65 20 3c 20 77 61 | 69 74 74 69 6d 65 29 29 |ime < wa|ittime))| |00002470| 3b 0d 0d 09 69 66 20 28 | 72 65 61 64 66 64 73 29 |;...if (|readfds)| |00002480| 0d 09 09 2a 72 65 61 64 | 66 64 73 20 3d 20 72 64 |...*read|fds = rd| |00002490| 3b 0d 09 69 66 20 28 77 | 72 69 74 65 66 64 73 29 |;..if (w|ritefds)| |000024a0| 0d 09 09 2a 77 72 69 74 | 65 66 64 73 20 3d 20 77 |...*writ|efds = w| |000024b0| 64 3b 0d 09 69 66 20 28 | 65 78 63 65 70 74 66 64 |d;..if (|exceptfd| |000024c0| 73 29 0d 09 09 2a 65 78 | 63 65 70 74 66 64 73 20 |s)...*ex|ceptfds | |000024d0| 3d 20 65 64 3b 0d 0d 09 | 72 65 74 75 72 6e 20 63 |= ed;...|return c| |000024e0| 6f 75 6e 74 3b 0d 7d 0d | 0d 69 6e 74 20 67 65 74 |ount;.}.|.int get| |000024f0| 73 6f 63 6b 6e 61 6d 65 | 28 69 6e 74 20 73 2c 20 |sockname|(int s, | |00002500| 76 6f 69 64 20 2a 6e 61 | 6d 65 2c 20 69 6e 74 20 |void *na|me, int | |00002510| 2a 6e 61 6d 65 6c 65 6e | 29 0d 7b 0d 09 53 6f 63 |*namelen|).{..Soc| |00002520| 6b 65 74 20 2a 09 73 6f | 63 6b 09 3d 09 53 6f 63 |ket *.so|ck.=.Soc| |00002530| 6b 65 74 73 5b 73 5d 3b | 0d 0d 09 72 65 74 75 72 |kets[s];|...retur| |00002540| 6e 20 73 6f 63 6b 20 3f | 20 73 6f 63 6b 2d 3e 67 |n sock ?| sock->g| |00002550| 65 74 73 6f 63 6b 6e 61 | 6d 65 28 6e 61 6d 65 2c |etsockna|me(name,| |00002560| 20 6e 61 6d 65 6c 65 6e | 29 20 3a 20 2d 31 3b 0d | namelen|) : -1;.| |00002570| 7d 0d 0d 69 6e 74 20 67 | 65 74 70 65 65 72 6e 61 |}..int g|etpeerna| |00002580| 6d 65 28 69 6e 74 20 73 | 2c 20 73 74 72 75 63 74 |me(int s|, struct| |00002590| 20 73 6f 63 6b 61 64 64 | 72 20 2a 6e 61 6d 65 2c | sockadd|r *name,| |000025a0| 20 69 6e 74 20 2a 6e 61 | 6d 65 6c 65 6e 29 0d 7b | int *na|melen).{| |000025b0| 0d 09 53 6f 63 6b 65 74 | 20 2a 09 73 6f 63 6b 09 |..Socket| *.sock.| |000025c0| 3d 09 53 6f 63 6b 65 74 | 73 5b 73 5d 3b 0d 0d 09 |=.Socket|s[s];...| |000025d0| 72 65 74 75 72 6e 20 73 | 6f 63 6b 20 3f 20 73 6f |return s|ock ? so| |000025e0| 63 6b 2d 3e 67 65 74 70 | 65 65 72 6e 61 6d 65 28 |ck->getp|eername(| |000025f0| 6e 61 6d 65 2c 20 6e 61 | 6d 65 6c 65 6e 29 20 3a |name, na|melen) :| |00002600| 20 2d 31 3b 0d 7d 0d 0d | 69 6e 74 20 73 68 75 74 | -1;.}..|int shut| |00002610| 64 6f 77 6e 28 69 6e 74 | 20 73 2c 20 69 6e 74 20 |down(int| s, int | |00002620| 68 6f 77 29 0d 7b 0d 09 | 53 6f 63 6b 65 74 20 2a |how).{..|Socket *| |00002630| 09 73 6f 63 6b 09 3d 09 | 53 6f 63 6b 65 74 73 5b |.sock.=.|Sockets[| |00002640| 73 5d 3b 0d 0d 09 72 65 | 74 75 72 6e 20 73 6f 63 |s];...re|turn soc| |00002650| 6b 20 3f 20 73 6f 63 6b | 2d 3e 73 68 75 74 64 6f |k ? sock|->shutdo| |00002660| 77 6e 28 68 6f 77 29 20 | 3a 20 2d 31 3b 0d 7d 0d |wn(how) |: -1;.}.| |00002670| 0d 69 6e 74 20 66 63 6e | 74 6c 28 69 6e 74 20 73 |.int fcn|tl(int s| |00002680| 2c 20 75 6e 73 69 67 6e | 65 64 20 69 6e 74 20 63 |, unsign|ed int c| |00002690| 6d 64 2c 20 69 6e 74 20 | 61 72 67 29 0d 7b 0d 09 |md, int |arg).{..| |000026a0| 53 6f 63 6b 65 74 20 2a | 09 73 6f 63 6b 09 3d 09 |Socket *|.sock.=.| |000026b0| 53 6f 63 6b 65 74 73 5b | 73 5d 3b 0d 0d 09 69 66 |Sockets[|s];...if| |000026c0| 20 28 73 6f 63 6b 29 0d | 09 09 72 65 74 75 72 6e | (sock).|..return| |000026d0| 20 28 63 6d 64 20 3d 3d | 20 46 5f 44 55 50 46 44 | (cmd ==| F_DUPFD| |000026e0| 29 20 3f 20 53 6f 63 6b | 65 74 73 2e 49 6e 73 74 |) ? Sock|ets.Inst| |000026f0| 61 6c 6c 28 73 6f 63 6b | 2c 20 61 72 67 29 20 3a |all(sock|, arg) :| |00002700| 20 73 6f 63 6b 2d 3e 66 | 63 6e 74 6c 28 63 6d 64 | sock->f|cntl(cmd| |00002710| 2c 20 61 72 67 29 3b 0d | 09 65 6c 73 65 0d 09 09 |, arg);.|.else...| |00002720| 72 65 74 75 72 6e 20 2d | 31 3b 0d 7d 0d 0d 69 6e |return -|1;.}..in| |00002730| 74 20 64 75 70 28 69 6e | 74 20 73 29 0d 7b 0d 09 |t dup(in|t s).{..| |00002740| 53 6f 63 6b 65 74 20 2a | 09 73 6f 63 6b 09 3d 09 |Socket *|.sock.=.| |00002750| 53 6f 63 6b 65 74 73 5b | 73 5d 3b 0d 0d 09 72 65 |Sockets[|s];...re| |00002760| 74 75 72 6e 20 73 6f 63 | 6b 20 3f 20 53 6f 63 6b |turn soc|k ? Sock| |00002770| 65 74 73 2e 49 6e 73 74 | 61 6c 6c 28 73 6f 63 6b |ets.Inst|all(sock| |00002780| 29 20 3a 20 2d 31 3b 0d | 7d 0d 0d 69 6e 74 20 64 |) : -1;.|}..int d| |00002790| 75 70 32 28 69 6e 74 20 | 73 2c 20 69 6e 74 20 73 |up2(int |s, int s| |000027a0| 31 29 0d 7b 0d 09 53 6f | 63 6b 65 74 20 2a 09 73 |1).{..So|cket *.s| |000027b0| 6f 63 6b 09 3d 09 53 6f | 63 6b 65 74 73 5b 73 5d |ock.=.So|ckets[s]| |000027c0| 3b 0d 0d 09 69 66 20 28 | 21 73 6f 63 6b 29 0d 09 |;...if (|!sock)..| |000027d0| 09 72 65 74 75 72 6e 20 | 2d 31 3b 0d 0d 09 69 66 |.return |-1;...if| |000027e0| 20 28 53 6f 63 6b 65 74 | 73 5b 73 31 5d 29 0d 09 | (Socket|s[s1])..| |000027f0| 09 53 6f 63 6b 65 74 73 | 2e 52 65 6d 6f 76 65 28 |.Sockets|.Remove(| |00002800| 73 31 29 3b 0d 0d 09 72 | 65 74 75 72 6e 20 53 6f |s1);...r|eturn So| |00002810| 63 6b 65 74 73 2e 49 6e | 73 74 61 6c 6c 28 73 6f |ckets.In|stall(so| |00002820| 63 6b 2c 20 73 31 29 3b | 0d 7d 0d 0d 69 6e 74 20 |ck, s1);|.}..int | |00002830| 69 6f 63 74 6c 28 69 6e | 74 20 73 2c 20 75 6e 73 |ioctl(in|t s, uns| |00002840| 69 67 6e 65 64 20 69 6e | 74 20 72 65 71 75 65 73 |igned in|t reques| |00002850| 74 2c 20 6c 6f 6e 67 20 | 2a 61 72 67 70 29 0d 7b |t, long |*argp).{| |00002860| 0d 09 53 6f 63 6b 65 74 | 20 2a 09 73 6f 63 6b 09 |..Socket| *.sock.| |00002870| 3d 09 53 6f 63 6b 65 74 | 73 5b 73 5d 3b 0d 0d 09 |=.Socket|s[s];...| |00002880| 72 65 74 75 72 6e 20 73 | 6f 63 6b 20 3f 20 73 6f |return s|ock ? so| |00002890| 63 6b 2d 3e 69 6f 63 74 | 6c 28 72 65 71 75 65 73 |ck->ioct|l(reques| |000028a0| 74 2c 20 61 72 67 70 29 | 20 3a 20 2d 31 3b 0d 7d |t, argp)| : -1;.}| |000028b0| 0d 0d 69 6e 74 20 67 65 | 74 73 6f 63 6b 6f 70 74 |..int ge|tsockopt| |000028c0| 28 69 6e 74 20 73 2c 20 | 69 6e 74 20 6c 65 76 65 |(int s, |int leve| |000028d0| 6c 2c 20 69 6e 74 20 6f | 70 74 6e 61 6d 65 2c 20 |l, int o|ptname, | |000028e0| 63 68 61 72 20 2a 6f 70 | 74 76 61 6c 2c 20 69 6e |char *op|tval, in| |000028f0| 74 20 2a 20 6f 70 74 6c | 65 6e 29 0d 7b 0d 09 53 |t * optl|en).{..S| |00002900| 6f 63 6b 65 74 20 2a 09 | 73 6f 63 6b 09 3d 09 53 |ocket *.|sock.=.S| |00002910| 6f 63 6b 65 74 73 5b 73 | 5d 3b 0d 0d 09 72 65 74 |ockets[s|];...ret| |00002920| 75 72 6e 20 73 6f 63 6b | 20 3f 20 73 6f 63 6b 2d |urn sock| ? sock-| |00002930| 3e 67 65 74 73 6f 63 6b | 6f 70 74 28 6c 65 76 65 |>getsock|opt(leve| |00002940| 6c 2c 20 6f 70 74 6e 61 | 6d 65 2c 20 6f 70 74 76 |l, optna|me, optv| |00002950| 61 6c 2c 20 6f 70 74 6c | 65 6e 29 20 3a 20 2d 31 |al, optl|en) : -1| |00002960| 3b 0d 7d 0d 0d 69 6e 74 | 20 73 65 74 73 6f 63 6b |;.}..int| setsock| |00002970| 6f 70 74 28 69 6e 74 20 | 73 2c 20 69 6e 74 20 6c |opt(int |s, int l| |00002980| 65 76 65 6c 2c 20 69 6e | 74 20 6f 70 74 6e 61 6d |evel, in|t optnam| |00002990| 65 2c 20 63 68 61 72 20 | 2a 6f 70 74 76 61 6c 2c |e, char |*optval,| |000029a0| 20 69 6e 74 20 6f 70 74 | 6c 65 6e 29 0d 7b 0d 09 | int opt|len).{..| |000029b0| 53 6f 63 6b 65 74 20 2a | 09 73 6f 63 6b 09 3d 09 |Socket *|.sock.=.| |000029c0| 53 6f 63 6b 65 74 73 5b | 73 5d 3b 0d 0d 09 72 65 |Sockets[|s];...re| |000029d0| 74 75 72 6e 20 73 6f 63 | 6b 20 3f 20 73 6f 63 6b |turn soc|k ? sock| |000029e0| 2d 3e 73 65 74 73 6f 63 | 6b 6f 70 74 28 6c 65 76 |->setsoc|kopt(lev| |000029f0| 65 6c 2c 20 6f 70 74 6e | 61 6d 65 2c 20 6f 70 74 |el, optn|ame, opt| |00002a00| 76 61 6c 2c 20 6f 70 74 | 6c 65 6e 29 20 3a 20 2d |val, opt|len) : -| |00002a10| 31 3b 0d 7d 0d 0d 69 6e | 74 20 66 73 74 61 74 28 |1;.}..in|t fstat(| |00002a20| 69 6e 74 20 73 2c 20 73 | 74 72 75 63 74 20 73 74 |int s, s|truct st| |00002a30| 61 74 20 2a 20 62 75 66 | 29 0d 7b 0d 09 53 6f 63 |at * buf|).{..Soc| |00002a40| 6b 65 74 20 2a 09 73 6f | 63 6b 09 3d 09 53 6f 63 |ket *.so|ck.=.Soc| |00002a50| 6b 65 74 73 5b 73 5d 3b | 0d 0d 09 72 65 74 75 72 |kets[s];|...retur| |00002a60| 6e 20 73 6f 63 6b 20 3f | 20 73 6f 63 6b 2d 3e 66 |n sock ?| sock->f| |00002a70| 73 74 61 74 28 62 75 66 | 29 20 3a 20 2d 31 3b 0d |stat(buf|) : -1;.| |00002a80| 7d 0d 0d 6c 6f 6e 67 20 | 6c 73 65 65 6b 28 69 6e |}..long |lseek(in| |00002a90| 74 20 73 2c 20 6c 6f 6e | 67 20 6f 66 66 73 65 74 |t s, lon|g offset| |00002aa0| 2c 20 69 6e 74 20 77 68 | 65 6e 63 65 29 0d 7b 0d |, int wh|ence).{.| |00002ab0| 09 53 6f 63 6b 65 74 20 | 2a 09 73 6f 63 6b 09 3d |.Socket |*.sock.=| |00002ac0| 09 53 6f 63 6b 65 74 73 | 5b 73 5d 3b 0d 0d 09 72 |.Sockets|[s];...r| |00002ad0| 65 74 75 72 6e 20 73 6f | 63 6b 20 3f 20 73 6f 63 |eturn so|ck ? soc| |00002ae0| 6b 2d 3e 6c 73 65 65 6b | 28 6f 66 66 73 65 74 2c |k->lseek|(offset,| |00002af0| 20 77 68 65 6e 63 65 29 | 20 3a 20 2d 31 3b 0d 7d | whence)| : -1;.}| |00002b00| 0d 0d 69 6e 74 20 69 73 | 61 74 74 79 28 69 6e 74 |..int is|atty(int| |00002b10| 20 73 29 0d 7b 0d 09 53 | 6f 63 6b 65 74 20 2a 09 | s).{..S|ocket *.| |00002b20| 73 6f 63 6b 09 3d 09 53 | 6f 63 6b 65 74 73 5b 73 |sock.=.S|ockets[s| |00002b30| 5d 3b 0d 0d 09 72 65 74 | 75 72 6e 20 73 6f 63 6b |];...ret|urn sock| |00002b40| 20 3f 20 73 6f 63 6b 2d | 3e 69 73 61 74 74 79 28 | ? sock-|>isatty(| |00002b50| 29 20 3a 20 2d 31 3b 0d | 7d 0d 0d 69 6e 74 20 47 |) : -1;.|}..int G| |00002b60| 55 53 49 5f 65 72 72 6f | 72 28 69 6e 74 20 65 72 |USI_erro|r(int er| |00002b70| 72 29 0d 7b 0d 09 65 72 | 72 6e 6f 20 3d 09 65 72 |r).{..er|rno =.er| |00002b80| 72 3b 0d 0d 09 72 65 74 | 75 72 6e 20 2d 31 3b 0d |r;...ret|urn -1;.| |00002b90| 7d 0d 0d 76 6f 69 64 20 | 2a 20 47 55 53 49 5f 65 |}..void |* GUSI_e| |00002ba0| 72 72 6f 72 5f 6e 69 6c | 28 69 6e 74 20 65 72 72 |rror_nil|(int err| |00002bb0| 29 0d 7b 0d 09 65 72 72 | 6e 6f 20 3d 09 65 72 72 |).{..err|no =.err| |00002bc0| 3b 0d 0d 09 72 65 74 75 | 72 6e 20 6e 69 6c 3b 0d |;...retu|rn nil;.| |00002bd0| 7d 0d 0d 76 6f 69 64 20 | 47 55 53 49 53 65 74 53 |}..void |GUSISetS| |00002be0| 70 69 6e 28 47 55 53 49 | 53 70 69 6e 46 6e 20 72 |pin(GUSI|SpinFn r| |00002bf0| 6f 75 74 69 6e 65 29 0d | 7b 0d 09 73 70 69 6e 72 |outine).|{..spinr| |00002c00| 6f 75 74 69 6e 65 20 3d | 20 72 6f 75 74 69 6e 65 |outine =| routine| |00002c10| 3b 0d 7d 0d 0d 47 55 53 | 49 53 70 69 6e 46 6e 20 |;.}..GUS|ISpinFn | |00002c20| 47 55 53 49 47 65 74 53 | 70 69 6e 28 29 0d 7b 0d |GUSIGetS|pin().{.| |00002c30| 09 72 65 74 75 72 6e 20 | 73 70 69 6e 72 6f 75 74 |.return |spinrout| |00002c40| 69 6e 65 3b 0d 7d 0d 0d | 69 6e 74 20 47 55 53 49 |ine;.}..|int GUSI| |00002c50| 53 65 74 45 76 65 6e 74 | 73 28 47 55 53 49 45 76 |SetEvent|s(GUSIEv| |00002c60| 74 54 61 62 6c 65 20 74 | 61 62 6c 65 29 0d 7b 0d |tTable t|able).{.| |00002c70| 09 73 68 6f 72 74 09 65 | 76 74 3b 0d 0d 09 65 76 |.short.e|vt;...ev| |00002c80| 74 48 61 6e 64 6c 65 72 | 09 3d 09 74 61 62 6c 65 |tHandler|.=.table| |00002c90| 3b 0d 09 65 76 74 4d 61 | 73 6b 09 09 3d 09 30 3b |;..evtMa|sk..=.0;| |00002ca0| 0d 0d 09 66 6f 72 20 28 | 65 76 74 20 3d 20 30 3b |...for (|evt = 0;| |00002cb0| 20 65 76 74 3c 31 36 3b | 20 2b 2b 65 76 74 29 0d | evt<16;| ++evt).| |00002cc0| 09 09 69 66 20 28 65 76 | 74 48 61 6e 64 6c 65 72 |..if (ev|tHandler| |00002cd0| 5b 65 76 74 5d 29 0d 09 | 09 09 65 76 74 4d 61 73 |[evt])..|..evtMas| |00002ce0| 6b 09 7c 3d 09 31 20 3c | 3c 20 65 76 74 3b 0d 0d |k.|=.1 <|< evt;..| |00002cf0| 09 72 65 74 75 72 6e 20 | 30 3b 0d 7d 0d 0d 47 55 |.return |0;.}..GU| |00002d00| 53 49 45 76 74 48 61 6e | 64 6c 65 72 20 2a 20 47 |SIEvtHan|dler * G| |00002d10| 55 53 49 47 65 74 45 76 | 65 6e 74 73 28 76 6f 69 |USIGetEv|ents(voi| |00002d20| 64 29 0d 7b 0d 09 72 65 | 74 75 72 6e 20 65 76 74 |d).{..re|turn evt| |00002d30| 48 61 6e 64 6c 65 72 3b | 0d 7d 0d 0d 2f 2a 2a 2a |Handler;|.}../***| |00002d40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00002d50| 2a 2a 2a 2a 20 53 6f 63 | 6b 65 74 44 6f 6d 61 69 |**** Soc|ketDomai| |00002d60| 6e 20 6d 65 6d 62 65 72 | 73 20 2a 2a 2a 2a 2a 2a |n member|s ******| |00002d70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00002d80| 2a 2f 0d 0d 53 6f 63 6b | 65 74 44 6f 6d 61 69 6e |*/..Sock|etDomain| |00002d90| 20 2a 09 53 6f 63 6b 65 | 74 44 6f 6d 61 69 6e 3a | *.Socke|tDomain:| |00002da0| 3a 64 6f 6d 61 69 6e 73 | 5b 47 55 53 49 5f 4d 41 |:domains|[GUSI_MA| |00002db0| 58 5f 44 4f 4d 41 49 4e | 5d 3b 0d 0d 53 6f 63 6b |X_DOMAIN|];..Sock| |00002dc0| 65 74 44 6f 6d 61 69 6e | 20 2a 20 53 6f 63 6b 65 |etDomain| * Socke| |00002dd0| 74 44 6f 6d 61 69 6e 3a | 3a 44 6f 6d 61 69 6e 28 |tDomain:|:Domain(| |00002de0| 69 6e 74 20 64 6f 6d 61 | 69 6e 29 0d 7b 0d 09 69 |int doma|in).{..i| |00002df0| 66 20 28 64 6f 6d 61 69 | 6e 20 3c 20 30 20 7c 7c |f (domai|n < 0 ||| |00002e00| 20 64 6f 6d 61 69 6e 20 | 3e 3d 20 47 55 53 49 5f | domain |>= GUSI_| |00002e10| 4d 41 58 5f 44 4f 4d 41 | 49 4e 20 7c 7c 20 21 64 |MAX_DOMA|IN || !d| |00002e20| 6f 6d 61 69 6e 73 5b 64 | 6f 6d 61 69 6e 5d 29 09 |omains[d|omain]).| |00002e30| 7b 0d 09 09 47 55 53 49 | 5f 65 72 72 6f 72 28 45 |{...GUSI|_error(E| |00002e40| 49 4e 56 41 4c 29 3b 0d | 0d 09 09 72 65 74 75 72 |INVAL);.|...retur| |00002e50| 6e 20 6e 69 6c 3b 0d 09 | 7d 20 65 6c 73 65 0d 09 |n nil;..|} else..| |00002e60| 09 72 65 74 75 72 6e 20 | 64 6f 6d 61 69 6e 73 5b |.return |domains[| |00002e70| 64 6f 6d 61 69 6e 5d 3b | 0d 7d 0d 0d 53 6f 63 6b |domain];|.}..Sock| |00002e80| 65 74 44 6f 6d 61 69 6e | 3a 3a 53 6f 63 6b 65 74 |etDomain|::Socket| |00002e90| 44 6f 6d 61 69 6e 28 69 | 6e 74 20 64 6f 6d 61 69 |Domain(i|nt domai| |00002ea0| 6e 29 0d 7b 0d 09 69 66 | 20 28 64 6f 6d 61 69 6e |n).{..if| (domain| |00002eb0| 73 5b 64 6f 6d 61 69 6e | 5d 29 09 7b 0d 09 09 53 |s[domain|]).{...S| |00002ec0| 74 72 36 33 09 6d 73 67 | 3b 0d 0d 09 09 73 70 72 |tr63.msg|;....spr| |00002ed0| 69 6e 74 66 28 28 63 68 | 61 72 20 2a 29 20 6d 73 |intf((ch|ar *) ms| |00002ee0| 67 2b 31 2c 20 22 44 75 | 70 6c 69 63 61 74 65 20 |g+1, "Du|plicate | |00002ef0| 64 65 63 6c 61 72 61 74 | 69 6f 6e 20 66 6f 72 20 |declarat|ion for | |00002f00| 64 6f 6d 61 69 6e 20 25 | 64 5c 6e 22 2c 20 64 6f |domain %|d\n", do| |00002f10| 6d 61 69 6e 29 3b 0d 09 | 09 6d 73 67 5b 30 5d 20 |main);..|.msg[0] | |00002f20| 3d 20 73 74 72 6c 65 6e | 28 28 63 68 61 72 20 2a |= strlen|((char *| |00002f30| 29 20 6d 73 67 2b 31 29 | 3b 0d 0d 09 09 44 65 62 |) msg+1)|;....Deb| |00002f40| 75 67 53 74 72 28 6d 73 | 67 29 3b 0d 09 7d 0d 0d |ugStr(ms|g);..}..| |00002f50| 09 64 6f 6d 61 69 6e 73 | 5b 64 6f 6d 61 69 6e 5d |.domains|[domain]| |00002f60| 09 3d 09 74 68 69 73 3b | 0d 7d 0d 0d 53 6f 63 6b |.=.this;|.}..Sock| |00002f70| 65 74 44 6f 6d 61 69 6e | 3a 3a 7e 53 6f 63 6b 65 |etDomain|::~Socke| |00002f80| 74 44 6f 6d 61 69 6e 28 | 29 0d 7b 0d 7d 0d 0d 2f |tDomain(|).{.}../| |00002f90| 2f 20 44 65 66 61 75 6c | 74 20 69 6d 70 6c 65 6d |/ Defaul|t implem| |00002fa0| 65 6e 74 61 74 69 6f 6e | 73 20 6f 66 20 73 6f 63 |entation|s of soc| |00002fb0| 6b 65 74 28 29 20 61 6e | 64 20 6f 70 65 6e 28 29 |ket() an|d open()| |00002fc0| 20 6a 75 73 74 20 72 65 | 74 75 72 6e 73 20 61 6e | just re|turns an| |00002fd0| 20 65 72 72 6f 72 0d 0d | 53 6f 63 6b 65 74 20 2a | error..|Socket *| |00002fe0| 20 53 6f 63 6b 65 74 44 | 6f 6d 61 69 6e 3a 3a 6f | SocketD|omain::o| |00002ff0| 70 65 6e 28 63 6f 6e 73 | 74 20 63 68 61 72 20 2a |pen(cons|t char *| |00003000| 2c 20 69 6e 74 29 0d 7b | 0d 09 47 55 53 49 5f 65 |, int).{|..GUSI_e| |00003010| 72 72 6f 72 28 45 4f 50 | 4e 4f 54 53 55 50 50 29 |rror(EOP|NOTSUPP)| |00003020| 3b 0d 0d 09 72 65 74 75 | 72 6e 20 6e 69 6c 3b 0d |;...retu|rn nil;.| |00003030| 7d 0d 0d 53 6f 63 6b 65 | 74 20 2a 20 53 6f 63 6b |}..Socke|t * Sock| |00003040| 65 74 44 6f 6d 61 69 6e | 3a 3a 73 6f 63 6b 65 74 |etDomain|::socket| |00003050| 28 69 6e 74 2c 20 73 68 | 6f 72 74 29 0d 7b 0d 09 |(int, sh|ort).{..| |00003060| 47 55 53 49 5f 65 72 72 | 6f 72 28 45 4f 50 4e 4f |GUSI_err|or(EOPNO| |00003070| 54 53 55 50 50 29 3b 0d | 0d 09 72 65 74 75 72 6e |TSUPP);.|..return| |00003080| 20 6e 69 6c 3b 0d 7d 0d | 0d 69 6e 74 20 53 6f 63 | nil;.}.|.int Soc| |00003090| 6b 65 74 44 6f 6d 61 69 | 6e 3a 3a 63 68 6f 6f 73 |ketDomai|n::choos| |000030a0| 65 28 69 6e 74 2c 20 63 | 68 61 72 20 2a 2c 20 76 |e(int, c|har *, v| |000030b0| 6f 69 64 20 2a 2c 20 69 | 6e 74 2c 20 76 6f 69 64 |oid *, i|nt, void| |000030c0| 20 2a 2c 20 69 6e 74 20 | 2a 29 0d 7b 0d 09 72 65 | *, int |*).{..re| |000030d0| 74 75 72 6e 20 47 55 53 | 49 5f 65 72 72 6f 72 28 |turn GUS|I_error(| |000030e0| 45 4f 50 4e 4f 54 53 55 | 50 50 29 3b 0d 7d 0d 0d |EOPNOTSU|PP);.}..| |000030f0| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********| |00003100| 2a 2a 2a 2a 2a 2a 2a 2a | 20 53 6f 63 6b 65 74 54 |********| SocketT| |00003110| 61 62 6c 65 20 6d 65 6d | 62 65 72 73 20 2a 2a 2a |able mem|bers ***| |00003120| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00003130| 2a 2a 2a 2a 2a 2f 0d 0d | 53 6f 63 6b 65 74 54 61 |*****/..|SocketTa| |00003140| 62 6c 65 3a 3a 53 6f 63 | 6b 65 74 54 61 62 6c 65 |ble::Soc|ketTable| |00003150| 28 29 0d 7b 0d 09 66 6f | 72 20 28 69 6e 74 20 69 |().{..fo|r (int i| |00003160| 20 3d 20 30 3b 20 69 20 | 3c 20 33 3b 20 69 2b 2b | = 0; i |< 3; i++| |00003170| 29 20 7b 0d 09 09 73 6f | 63 6b 65 74 73 5b 69 5d |) {...so|ckets[i]| |00003180| 09 3d 09 46 69 6c 65 53 | 6f 63 6b 65 74 73 2e 73 |.=.FileS|ockets.s| |00003190| 74 64 6f 70 65 6e 28 69 | 29 3b 0d 0d 09 09 2b 2b |tdopen(i|);....++| |000031a0| 73 6f 63 6b 65 74 73 5b | 69 5d 2d 3e 72 65 66 43 |sockets[|i]->refC| |000031b0| 6f 75 6e 74 3b 0d 09 7d | 0d 7d 0d 0d 69 6e 74 20 |ount;..}|.}..int | |000031c0| 53 6f 63 6b 65 74 54 61 | 62 6c 65 3a 3a 49 6e 73 |SocketTa|ble::Ins| |000031d0| 74 61 6c 6c 28 53 6f 63 | 6b 65 74 20 2a 20 73 6f |tall(Soc|ket * so| |000031e0| 63 6b 2c 20 69 6e 74 20 | 73 74 61 72 74 29 0d 7b |ck, int |start).{| |000031f0| 0d 09 73 68 6f 72 74 09 | 66 64 3b 0d 0d 09 69 66 |..short.|fd;...if| |00003200| 20 28 73 74 61 72 74 3c | 30 20 7c 7c 20 73 74 61 | (start<|0 || sta| |00003210| 72 74 20 3e 3d 20 47 55 | 53 49 5f 4d 41 58 5f 46 |rt >= GU|SI_MAX_F| |00003220| 44 29 0d 09 09 72 65 74 | 75 72 6e 20 47 55 53 49 |D)...ret|urn GUSI| |00003230| 5f 65 72 72 6f 72 28 45 | 49 4e 56 41 4c 29 3b 0d |_error(E|INVAL);.| |00003240| 0d 09 66 6f 72 20 28 66 | 64 3d 73 74 61 72 74 3b |..for (f|d=start;| |00003250| 20 66 64 3c 47 55 53 49 | 5f 4d 41 58 5f 46 44 3b | fd<GUSI|_MAX_FD;| |00003260| 20 2b 2b 66 64 29 0d 09 | 09 69 66 20 28 21 73 6f | ++fd)..|.if (!so| |00003270| 63 6b 65 74 73 5b 66 64 | 5d 29 09 7b 0d 09 09 09 |ckets[fd|]).{....| |00003280| 73 6f 63 6b 65 74 73 5b | 66 64 5d 20 3d 20 73 6f |sockets[|fd] = so| |00003290| 63 6b 3b 0d 09 09 09 2b | 2b 73 6f 63 6b 2d 3e 72 |ck;....+|+sock->r| |000032a0| 65 66 43 6f 75 6e 74 3b | 0d 0d 09 09 09 72 65 74 |efCount;|.....ret| |000032b0| 75 72 6e 20 66 64 3b 0d | 09 09 7d 0d 0d 09 72 65 |urn fd;.|..}...re| |000032c0| 74 75 72 6e 20 47 55 53 | 49 5f 65 72 72 6f 72 28 |turn GUS|I_error(| |000032d0| 45 4d 46 49 4c 45 29 3b | 0d 7d 0d 0d 69 6e 74 20 |EMFILE);|.}..int | |000032e0| 53 6f 63 6b 65 74 54 61 | 62 6c 65 3a 3a 52 65 6d |SocketTa|ble::Rem| |000032f0| 6f 76 65 28 69 6e 74 20 | 66 64 29 0d 7b 0d 09 53 |ove(int |fd).{..S| |00003300| 6f 63 6b 65 74 20 2a 09 | 73 6f 63 6b 3b 0d 0d 09 |ocket *.|sock;...| |00003310| 69 66 20 28 66 64 3c 30 | 20 7c 7c 20 66 64 20 3e |if (fd<0| || fd >| |00003320| 3d 20 47 55 53 49 5f 4d | 41 58 5f 46 44 20 7c 7c |= GUSI_M|AX_FD ||| |00003330| 20 21 28 73 6f 63 6b 20 | 3d 20 73 6f 63 6b 65 74 | !(sock |= socket| |00003340| 73 5b 66 64 5d 29 29 0d | 09 09 72 65 74 75 72 6e |s[fd])).|..return| |00003350| 20 47 55 53 49 5f 65 72 | 72 6f 72 28 45 42 41 44 | GUSI_er|ror(EBAD| |00003360| 46 29 3b 0d 0d 09 73 6f | 63 6b 65 74 73 5b 66 64 |F);...so|ckets[fd| |00003370| 5d 20 09 3d 09 6e 69 6c | 3b 0d 0d 09 69 66 20 28 |] .=.nil|;...if (| |00003380| 21 2d 2d 73 6f 63 6b 2d | 3e 72 65 66 43 6f 75 6e |!--sock-|>refCoun| |00003390| 74 29 0d 09 09 64 65 6c | 65 74 65 20 73 6f 63 6b |t)...del|ete sock| |000033a0| 3b 0d 0d 09 72 65 74 75 | 72 6e 20 30 3b 0d 7d 0d |;...retu|rn 0;.}.| |000033b0| 0d 53 6f 63 6b 65 74 20 | 2a 20 53 6f 63 6b 65 74 |.Socket |* Socket| |000033c0| 54 61 62 6c 65 3a 3a 6f | 70 65 72 61 74 6f 72 5b |Table::o|perator[| |000033d0| 5d 28 69 6e 74 20 66 64 | 29 0d 7b 0d 09 53 6f 63 |](int fd|).{..Soc| |000033e0| 6b 65 74 20 2a 20 73 6f | 63 6b 3b 0d 0d 09 69 66 |ket * so|ck;...if| |000033f0| 20 28 66 64 3c 30 20 7c | 7c 20 66 64 20 3e 3d 20 | (fd<0 ||| fd >= | |00003400| 47 55 53 49 5f 4d 41 58 | 5f 46 44 20 7c 7c 20 21 |GUSI_MAX|_FD || !| |00003410| 28 73 6f 63 6b 20 3d 20 | 73 6f 63 6b 65 74 73 5b |(sock = |sockets[| |00003420| 66 64 5d 29 29 09 7b 0d | 09 09 47 55 53 49 5f 65 |fd])).{.|..GUSI_e| |00003430| 72 72 6f 72 28 45 42 41 | 44 46 29 3b 0d 0d 09 09 |rror(EBA|DF);....| |00003440| 72 65 74 75 72 6e 20 6e | 69 6c 3b 0d 09 7d 20 65 |return n|il;..} e| |00003450| 6c 73 65 0d 09 09 72 65 | 74 75 72 6e 20 73 6f 63 |lse...re|turn soc| |00003460| 6b 3b 0d 7d 0d 0d 53 6f | 63 6b 65 74 54 61 62 6c |k;.}..So|cketTabl| |00003470| 65 3a 3a 7e 53 6f 63 6b | 65 74 54 61 62 6c 65 28 |e::~Sock|etTable(| |00003480| 29 0d 7b 0d 09 69 6e 74 | 20 69 3b 0d 0d 09 2f 2f |).{..int| i;...//| |00003490| 20 43 6c 6f 73 65 20 73 | 74 64 69 6f 20 66 69 6c | Close s|tdio fil| |000034a0| 65 73 20 28 6e 65 63 65 | 73 73 61 72 79 20 74 6f |es (nece|ssary to| |000034b0| 20 66 6c 75 73 68 20 62 | 75 66 66 65 72 73 29 0d | flush b|uffers).| |000034c0| 09 2f 2f 20 54 68 69 73 | 20 69 6d 70 6c 65 6d 65 |.// This| impleme| |000034d0| 6e 74 61 74 69 6f 6e 20 | 69 73 20 6e 6f 74 20 6e |ntation |is not n| |000034e0| 69 63 65 2c 20 62 75 74 | 20 77 68 6f 20 63 61 72 |ice, but| who car| |000034f0| 65 73 20 3f 0d 09 2f 2f | 20 49 6e 20 63 61 73 65 |es ?..//| In case| |00003500| 20 79 6f 75 20 77 6f 6e | 64 65 72 2c 20 5f 4e 46 | you won|der, _NF| |00003510| 49 4c 45 20 26 20 5f 69 | 6f 62 20 61 72 65 20 64 |ILE & _i|ob are d| |00003520| 65 66 69 6e 65 64 20 69 | 6e 20 3c 73 74 64 69 6f |efined i|n <stdio| |00003530| 2e 68 3e 0d 0d 09 66 6f | 72 20 28 69 20 3d 20 30 |.h>...fo|r (i = 0| |00003540| 3b 20 69 3c 5f 4e 46 49 | 4c 45 3b 20 69 2b 2b 29 |; i<_NFI|LE; i++)| |00003550| 0d 09 09 66 63 6c 6f 73 | 65 28 5f 69 6f 62 2b 69 |...fclos|e(_iob+i| |00003560| 29 3b 0d 0d 09 2f 2f 20 | 43 6c 6f 73 65 20 61 6c |);...// |Close al| |00003570| 6c 20 66 69 6c 65 73 0d | 0d 09 66 6f 72 20 28 69 |l files.|..for (i| |00003580| 20 3d 20 30 3b 20 69 3c | 47 55 53 49 5f 4d 41 58 | = 0; i<|GUSI_MAX| |00003590| 5f 46 44 3b 20 2b 2b 69 | 29 0d 09 09 69 66 20 28 |_FD; ++i|)...if (| |000035a0| 73 6f 63 6b 65 74 73 5b | 69 5d 29 0d 09 09 09 63 |sockets[|i])....c| |000035b0| 6c 6f 73 65 28 69 29 3b | 0d 7d 0d 0d 2f 2a 2a 2a |lose(i);|.}../***| |000035c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000035d0| 2a 2a 2a 20 44 65 66 61 | 75 6c 74 20 73 70 69 6e |*** Defa|ult spin| |000035e0| 20 66 75 6e 63 74 69 6f | 6e 20 2a 2a 2a 2a 2a 2a | functio|n ******| |000035f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00003600| 2a 2f 0d 0d 2f 2a 20 42 | 6f 72 72 6f 77 65 64 20 |*/../* B|orrowed | |00003610| 66 72 6f 6d 20 74 65 63 | 68 20 6e 6f 74 65 20 32 |from tec|h note 2| |00003620| 36 33 20 2a 2f 0d 0d 23 | 64 65 66 69 6e 65 20 6b |63 */..#|define k| |00003630| 4d 61 73 6b 4d 6f 64 69 | 66 69 65 72 73 20 20 09 |MaskModi|fiers .| |00003640| 30 78 46 45 30 30 20 20 | 20 20 20 09 2f 2f 20 77 |0xFE00 | .// w| |00003650| 65 20 6e 65 65 64 20 74 | 68 65 20 6d 6f 64 69 66 |e need t|he modif| |00003660| 69 65 72 73 20 77 69 74 | 68 6f 75 74 20 74 68 65 |iers wit|hout the| |00003670| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | | |00003680| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | | |00003690| 20 20 20 20 09 09 2f 2f | 20 63 6f 6d 6d 61 6e 64 | ..//| command| |000036a0| 20 6b 65 79 20 66 6f 72 | 20 4b 65 79 54 72 61 6e | key for| KeyTran| |000036b0| 73 0d 23 64 65 66 69 6e | 65 20 6b 4d 61 73 6b 56 |s.#defin|e kMaskV| |000036c0| 69 72 74 75 61 6c 4b 65 | 79 20 09 30 78 30 30 30 |irtualKe|y .0x000| |000036d0| 30 46 46 30 30 20 09 2f | 2f 20 67 65 74 20 76 69 |0FF00 ./|/ get vi| |000036e0| 72 74 75 61 6c 20 6b 65 | 79 20 66 72 6f 6d 20 65 |rtual ke|y from e| |000036f0| 76 65 6e 74 20 6d 65 73 | 73 61 67 65 0d 20 20 20 |vent mes|sage. | |00003700| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | | |00003710| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | | |00003720| 09 09 2f 2f 20 66 6f 72 | 20 4b 65 79 54 72 61 6e |..// for| KeyTran| |00003730| 73 0d 23 64 65 66 69 6e | 65 20 6b 55 70 4b 65 79 |s.#defin|e kUpKey| |00003740| 4d 61 73 6b 20 20 20 20 | 20 20 09 30 78 30 30 38 |Mask | .0x008| |00003750| 30 0d 23 64 65 66 69 6e | 65 20 6b 53 68 69 66 74 |0.#defin|e kShift| |00003760| 57 6f 72 64 20 20 20 20 | 20 20 09 38 20 20 20 20 |Word | .8 | |00003770| 20 20 20 20 20 20 09 2f | 2f 20 77 65 20 73 68 69 | ./|/ we shi| |00003780| 66 74 20 74 68 65 20 76 | 69 72 74 75 61 6c 20 6b |ft the v|irtual k| |00003790| 65 79 20 74 6f 20 6d 61 | 73 6b 20 69 74 0d 20 20 |ey to ma|sk it. | |000037a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | | |000037b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | | |000037c0| 20 09 09 2f 2f 20 69 6e | 74 6f 20 74 68 65 20 6b | ..// in|to the k| |000037d0| 65 79 43 6f 64 65 20 66 | 6f 72 20 4b 65 79 54 72 |eyCode f|or KeyTr| |000037e0| 61 6e 73 0d 23 64 65 66 | 69 6e 65 20 6b 4d 61 73 |ans.#def|ine kMas| |000037f0| 6b 41 53 43 49 49 31 20 | 20 20 20 20 09 30 78 30 |kASCII1 | .0x0| |00003800| 30 46 46 30 30 30 30 20 | 09 2f 2f 20 67 65 74 20 |0FF0000 |.// get | |00003810| 74 68 65 20 6b 65 79 20 | 6f 75 74 20 6f 66 20 74 |the key |out of t| |00003820| 68 65 20 41 53 43 49 49 | 31 20 62 79 74 65 0d 23 |he ASCII|1 byte.#| |00003830| 64 65 66 69 6e 65 20 6b | 4d 61 73 6b 41 53 43 49 |define k|MaskASCI| |00003840| 49 32 20 20 20 20 20 09 | 30 78 30 30 30 30 30 30 |I2 .|0x000000| |00003850| 46 46 20 09 2f 2f 20 67 | 65 74 20 74 68 65 20 6b |FF .// g|et the k| |00003860| 65 79 20 6f 75 74 20 6f | 66 20 74 68 65 20 41 53 |ey out o|f the AS| |00003870| 43 49 49 32 20 62 79 74 | 65 0d 23 64 65 66 69 6e |CII2 byt|e.#defin| |00003880| 65 20 6b 50 65 72 69 6f | 64 20 20 20 20 20 20 20 |e kPerio|d | |00003890| 20 20 09 30 78 32 45 20 | 20 20 20 20 20 20 09 2f | .0x2E | ./| |000038a0| 2f 20 61 73 63 69 69 20 | 66 6f 72 20 61 20 70 65 |/ ascii |for a pe| |000038b0| 72 69 6f 64 0d 0d 73 74 | 61 74 69 63 20 42 6f 6f |riod..st|atic Boo| |000038c0| 6c 65 61 6e 20 43 6d 64 | 50 65 72 69 6f 64 28 20 |lean Cmd|Period( | |000038d0| 45 76 65 6e 74 52 65 63 | 6f 72 64 20 2a 74 68 65 |EventRec|ord *the| |000038e0| 45 76 65 6e 74 20 29 0d | 7b 0d 20 20 09 42 6f 6f |Event ).|{. .Boo| |000038f0| 6c 65 61 6e 20 20 66 54 | 69 6d 65 54 6f 51 75 69 |lean fT|imeToQui| |00003900| 74 3b 0d 20 20 09 73 68 | 6f 72 74 20 20 20 20 6b |t;. .sh|ort k| |00003910| 65 79 43 6f 64 65 3b 0d | 20 20 09 6c 6f 6e 67 20 |eyCode;.| .long | |00003920| 20 20 20 20 76 69 72 74 | 75 61 6c 4b 65 79 2c 20 | virt|ualKey, | |00003930| 6b 65 79 49 6e 66 6f 2c | 20 6c 6f 77 43 68 61 72 |keyInfo,| lowChar| |00003940| 2c 20 68 69 67 68 43 68 | 61 72 2c 20 73 74 61 74 |, highCh|ar, stat| |00003950| 65 2c 20 6b 65 79 43 49 | 64 3b 0d 20 20 09 48 61 |e, keyCI|d;. .Ha| |00003960| 6e 64 6c 65 20 20 20 68 | 4b 43 48 52 3b 0d 09 50 |ndle h|KCHR;..P| |00003970| 74 72 20 09 09 4b 43 48 | 52 50 74 72 3b 0d 0d 09 |tr ..KCH|RPtr;...| |00003980| 66 54 69 6d 65 54 6f 51 | 75 69 74 20 3d 20 66 61 |fTimeToQ|uit = fa| |00003990| 6c 73 65 3b 0d 0d 09 69 | 66 20 28 28 28 2a 74 68 |lse;...i|f (((*th| |000039a0| 65 45 76 65 6e 74 29 2e | 77 68 61 74 20 3d 3d 20 |eEvent).|what == | |000039b0| 6b 65 79 44 6f 77 6e 29 | 20 7c 7c 20 28 28 2a 74 |keyDown)| || ((*t| |000039c0| 68 65 45 76 65 6e 74 29 | 2e 77 68 61 74 20 3d 3d |heEvent)|.what ==| |000039d0| 20 61 75 74 6f 4b 65 79 | 29 29 20 7b 0d 0d 09 09 | autoKey|)) {....| |000039e0| 2f 2f 20 73 65 65 20 69 | 66 20 74 68 65 20 63 6f |// see i|f the co| |000039f0| 6d 6d 61 6e 64 20 6b 65 | 79 20 69 73 20 64 6f 77 |mmand ke|y is dow| |00003a00| 6e 2e 20 20 49 66 20 69 | 74 20 69 73 2c 20 66 69 |n. If i|t is, fi| |00003a10| 6e 64 20 6f 75 74 20 74 | 68 65 20 41 53 43 49 49 |nd out t|he ASCII| |00003a20| 0d 09 09 2f 2f 20 65 71 | 75 69 76 61 6c 65 6e 74 |...// eq|uivalent| |00003a30| 20 66 6f 72 20 74 68 65 | 20 61 63 63 6f 6d 70 61 | for the| accompa| |00003a40| 6e 79 69 6e 67 20 6b 65 | 79 2e 0d 0d 09 09 69 66 |nying ke|y.....if| |00003a50| 20 28 28 2a 74 68 65 45 | 76 65 6e 74 29 2e 6d 6f | ((*theE|vent).mo| |00003a60| 64 69 66 69 65 72 73 20 | 26 20 63 6d 64 4b 65 79 |difiers |& cmdKey| |00003a70| 20 29 20 7b 0d 0d 09 09 | 09 76 69 72 74 75 61 6c | ) {....|.virtual| |00003a80| 4b 65 79 20 3d 20 28 28 | 2a 74 68 65 45 76 65 6e |Key = ((|*theEven| |00003a90| 74 29 2e 6d 65 73 73 61 | 67 65 20 26 20 6b 4d 61 |t).messa|ge & kMa| |00003aa0| 73 6b 56 69 72 74 75 61 | 6c 4b 65 79 29 20 3e 3e |skVirtua|lKey) >>| |00003ab0| 20 6b 53 68 69 66 74 57 | 6f 72 64 3b 0d 09 09 09 | kShiftW|ord;....| |00003ac0| 2f 2f 20 41 6e 64 20 6f | 75 74 20 74 68 65 20 63 |// And o|ut the c| |00003ad0| 6f 6d 6d 61 6e 64 20 6b | 65 79 20 61 6e 64 20 4f |ommand k|ey and O| |00003ae0| 72 20 69 6e 20 74 68 65 | 20 76 69 72 74 75 61 6c |r in the| virtual| |00003af0| 4b 65 79 0d 09 09 09 6b | 65 79 43 6f 64 65 20 20 |Key....k|eyCode | |00003b00| 20 20 3d 20 73 68 6f 72 | 74 28 28 28 2a 74 68 65 | = shor|t(((*the| |00003b10| 45 76 65 6e 74 29 2e 6d | 6f 64 69 66 69 65 72 73 |Event).m|odifiers| |00003b20| 20 26 20 6b 4d 61 73 6b | 4d 6f 64 69 66 69 65 72 | & kMask|Modifier| |00003b30| 73 29 20 7c 20 76 69 72 | 74 75 61 6c 4b 65 79 29 |s) | vir|tualKey)| |00003b40| 3b 0d 09 09 09 73 74 61 | 74 65 20 20 20 20 20 20 |;....sta|te | |00003b50| 3d 20 30 3b 0d 0d 09 09 | 09 68 4b 43 48 52 20 3d |= 0;....|.hKCHR =| |00003b60| 20 6e 69 6c 3b 20 20 2f | 2a 20 73 65 74 20 74 68 | nil; /|* set th| |00003b70| 69 73 20 74 6f 20 6e 69 | 6c 20 62 65 66 6f 72 65 |is to ni|l before| |00003b80| 20 73 74 61 72 74 69 6e | 67 20 2a 2f 0d 09 09 20 | startin|g */... | |00003b90| 09 4b 43 48 52 50 74 72 | 20 3d 20 28 50 74 72 29 |.KCHRPtr| = (Ptr)| |00003ba0| 47 65 74 45 6e 76 69 72 | 6f 6e 73 28 73 6d 4b 43 |GetEnvir|ons(smKC| |00003bb0| 48 52 43 61 63 68 65 29 | 3b 0d 0d 09 09 09 69 66 |HRCache)|;.....if| |00003bc0| 20 28 20 21 4b 43 48 52 | 50 74 72 20 29 20 7b 0d | ( !KCHR|Ptr ) {.| |00003bd0| 09 09 09 09 6b 65 79 43 | 49 64 20 3d 20 47 65 74 |....keyC|Id = Get| |00003be0| 53 63 72 69 70 74 28 47 | 65 74 45 6e 76 69 72 6f |Script(G|etEnviro| |00003bf0| 6e 73 28 73 6d 4b 65 79 | 53 63 72 69 70 74 29 2c |ns(smKey|Script),| |00003c00| 20 73 6d 53 63 72 69 70 | 74 4b 65 79 73 29 3b 0d | smScrip|tKeys);.| |00003c10| 0d 09 09 09 09 68 4b 43 | 48 52 20 20 20 3d 20 47 |.....hKC|HR = G| |00003c20| 65 74 52 65 73 6f 75 72 | 63 65 28 27 4b 43 48 52 |etResour|ce('KCHR| |00003c30| 27 2c 6b 65 79 43 49 64 | 29 3b 0d 09 09 09 09 4b |',keyCId|);.....K| |00003c40| 43 48 52 50 74 72 20 3d | 20 2a 68 4b 43 48 52 3b |CHRPtr =| *hKCHR;| |00003c50| 0d 09 09 09 7d 0d 0d 09 | 09 09 69 66 20 28 4b 43 |....}...|..if (KC| |00003c60| 48 52 50 74 72 29 20 7b | 0d 09 09 09 09 6b 65 79 |HRPtr) {|.....key| |00003c70| 49 6e 66 6f 20 3d 20 4b | 65 79 54 72 61 6e 73 28 |Info = K|eyTrans(| |00003c80| 4b 43 48 52 50 74 72 2c | 20 6b 65 79 43 6f 64 65 |KCHRPtr,| keyCode| |00003c90| 2c 20 26 73 74 61 74 65 | 29 3b 0d 09 09 09 09 69 |, &state|);.....i| |00003ca0| 66 20 28 68 4b 43 48 52 | 29 0d 09 09 09 09 09 52 |f (hKCHR|)......R| |00003cb0| 65 6c 65 61 73 65 52 65 | 73 6f 75 72 63 65 28 68 |eleaseRe|source(h| |00003cc0| 4b 43 48 52 29 3b 0d 09 | 09 09 7d 20 65 6c 73 65 |KCHR);..|..} else| |00003cd0| 0d 09 09 09 09 6b 65 79 | 49 6e 66 6f 20 3d 20 28 |.....key|Info = (| |00003ce0| 2a 74 68 65 45 76 65 6e | 74 29 2e 6d 65 73 73 61 |*theEven|t).messa| |00003cf0| 67 65 3b 0d 0d 09 09 09 | 6c 6f 77 43 68 61 72 20 |ge;.....|lowChar | |00003d00| 3d 20 20 6b 65 79 49 6e | 66 6f 20 26 20 20 6b 4d |= keyIn|fo & kM| |00003d10| 61 73 6b 41 53 43 49 49 | 32 3b 0d 09 09 09 68 69 |askASCII|2;....hi| |00003d20| 67 68 43 68 61 72 20 3d | 20 28 6b 65 79 49 6e 66 |ghChar =| (keyInf| |00003d30| 6f 20 26 20 6b 4d 61 73 | 6b 41 53 43 49 49 31 29 |o & kMas|kASCII1)| |00003d40| 20 3e 3e 20 31 36 3b 0d | 09 09 09 69 66 20 28 6c | >> 16;.|...if (l| |00003d50| 6f 77 43 68 61 72 20 3d | 3d 20 6b 50 65 72 69 6f |owChar =|= kPerio| |00003d60| 64 20 7c 7c 20 68 69 67 | 68 43 68 61 72 20 3d 3d |d || hig|hChar ==| |00003d70| 20 6b 50 65 72 69 6f 64 | 29 0d 09 09 09 09 66 54 | kPeriod|).....fT| |00003d80| 69 6d 65 54 6f 51 75 69 | 74 20 3d 20 74 72 75 65 |imeToQui|t = true| |00003d90| 3b 0d 0d 09 09 7d 20 20 | 2f 2f 20 65 6e 64 20 74 |;....} |// end t| |00003da0| 68 65 20 63 6f 6d 6d 61 | 6e 64 20 6b 65 79 20 69 |he comma|nd key i| |00003db0| 73 20 64 6f 77 6e 0d 09 | 7d 20 20 2f 2f 20 65 6e |s down..|} // en| |00003dc0| 64 20 6b 65 79 20 64 6f | 77 6e 20 65 76 65 6e 74 |d key do|wn event| |00003dd0| 0d 0d 09 72 65 74 75 72 | 6e 28 20 66 54 69 6d 65 |...retur|n( fTime| |00003de0| 54 6f 51 75 69 74 20 29 | 3b 0d 7d 0d 0d 69 6e 74 |ToQuit )|;.}..int| |00003df0| 20 47 55 53 49 44 65 66 | 61 75 6c 74 53 70 69 6e | GUSIDef|aultSpin| |00003e00| 28 73 70 69 6e 5f 6d 73 | 67 2c 20 6c 6f 6e 67 29 |(spin_ms|g, long)| |00003e10| 0d 7b 0d 09 73 74 61 74 | 69 63 20 42 6f 6f 6c 65 |.{..stat|ic Boole| |00003e20| 61 6e 09 09 09 69 6e 46 | 6f 72 65 67 72 6f 75 6e |an...inF|oregroun| |00003e30| 64 09 3d 09 74 72 75 65 | 3b 0d 09 65 78 74 65 72 |d.=.true|;..exter| |00003e40| 6e 20 69 6e 74 09 09 09 | 09 53 74 61 6e 64 41 6c |n int...|.StandAl| |00003e50| 6f 6e 65 3b 0d 09 45 76 | 65 6e 74 52 65 63 6f 72 |one;..Ev|entRecor| |00003e60| 64 09 09 09 09 65 76 3b | 0d 09 45 76 51 45 6c 50 |d....ev;|..EvQElP| |00003e70| 74 72 09 09 09 09 09 65 | 76 65 6e 74 51 3b 0d 09 |tr.....e|ventQ;..| |00003e80| 57 69 6e 64 6f 77 50 74 | 72 09 09 09 09 77 69 6e |WindowPt|r....win| |00003e90| 3b 0d 0d 09 69 66 20 28 | 69 6e 46 6f 72 65 67 72 |;...if (|inForegr| |00003ea0| 6f 75 6e 64 29 0d 09 09 | 53 70 69 6e 43 75 72 73 |ound)...|SpinCurs| |00003eb0| 6f 72 28 31 29 3b 0d 0d | 09 69 66 20 28 21 69 6e |or(1);..|.if (!in| |00003ec0| 46 6f 72 65 67 72 6f 75 | 6e 64 20 7c 7c 20 53 74 |Foregrou|nd || St| |00003ed0| 61 6e 64 41 6c 6f 6e 65 | 29 09 7b 0d 09 09 66 6f |andAlone|).{...fo| |00003ee0| 72 20 28 65 76 65 6e 74 | 51 20 3d 20 28 45 76 51 |r (event|Q = (EvQ| |00003ef0| 45 6c 50 74 72 29 20 47 | 65 74 45 76 51 48 64 72 |ElPtr) G|etEvQHdr| |00003f00| 28 29 2d 3e 71 48 65 61 | 64 3b 20 65 76 65 6e 74 |()->qHea|d; event| |00003f10| 51 3b 20 29 0d 09 09 09 | 69 66 20 28 43 6d 64 50 |Q; )....|if (CmdP| |00003f20| 65 72 69 6f 64 28 28 45 | 76 65 6e 74 52 65 63 6f |eriod((E|ventReco| |00003f30| 72 64 20 2a 29 20 26 65 | 76 65 6e 74 51 2d 3e 65 |rd *) &e|ventQ->e| |00003f40| 76 74 51 57 68 61 74 29 | 29 0d 09 09 09 09 67 6f |vtQWhat)|).....go| |00003f50| 74 6f 20 69 6e 74 65 72 | 72 75 70 74 3b 0d 09 09 |to inter|rupt;...| |00003f60| 09 65 6c 73 65 0d 09 09 | 09 09 65 76 65 6e 74 51 |.else...|..eventQ| |00003f70| 20 3d 20 28 45 76 51 45 | 6c 50 74 72 29 65 76 65 | = (EvQE|lPtr)eve| |00003f80| 6e 74 51 2d 3e 71 4c 69 | 6e 6b 3b 0d 0d 09 09 69 |ntQ->qLi|nk;....i| |00003f90| 66 20 28 68 61 73 57 4e | 45 29 09 7b 0d 09 09 09 |f (hasWN|E).{....| |00003fa0| 69 66 20 28 57 61 69 74 | 4e 65 78 74 45 76 65 6e |if (Wait|NextEven| |00003fb0| 74 28 6f 73 4d 61 73 6b | 2b 6d 44 6f 77 6e 4d 61 |t(osMask|+mDownMa| |00003fc0| 73 6b 2b 65 76 74 4d 61 | 73 6b 2c 20 26 65 76 2c |sk+evtMa|sk, &ev,| |00003fd0| 20 31 2c 20 6e 69 6c 29 | 29 0d 09 09 09 09 73 77 | 1, nil)|).....sw| |00003fe0| 69 74 63 68 20 28 65 76 | 2e 77 68 61 74 29 20 7b |itch (ev|.what) {| |00003ff0| 0d 09 09 09 09 63 61 73 | 65 20 6d 6f 75 73 65 44 |.....cas|e mouseD| |00004000| 6f 77 6e 3a 0d 09 09 09 | 09 09 69 66 20 28 21 65 |own:....|..if (!e| |00004010| 76 74 48 61 6e 64 6c 65 | 72 20 7c 7c 20 65 76 74 |vtHandle|r || evt| |00004020| 48 61 6e 64 6c 65 72 5b | 6d 6f 75 73 65 44 6f 77 |Handler[|mouseDow| |00004030| 6e 5d 29 0d 09 09 09 09 | 09 09 69 66 20 28 46 69 |n]).....|..if (Fi| |00004040| 6e 64 57 69 6e 64 6f 77 | 28 65 76 2e 77 68 65 72 |ndWindow|(ev.wher| |00004050| 65 2c 20 26 77 69 6e 29 | 20 3d 3d 20 69 6e 53 79 |e, &win)| == inSy| |00004060| 73 57 69 6e 64 6f 77 29 | 0d 09 09 09 09 09 09 09 |sWindow)|........| |00004070| 53 79 73 74 65 6d 43 6c | 69 63 6b 28 26 65 76 2c |SystemCl|ick(&ev,| |00004080| 20 77 69 6e 29 3b 0d 0d | 09 09 09 09 09 62 72 65 | win);..|.....bre| |00004090| 61 6b 3b 0d 09 09 09 09 | 63 61 73 65 20 6f 73 45 |ak;.....|case osE| |000040a0| 76 74 3a 0d 09 09 09 09 | 09 69 66 20 28 65 76 2e |vt:.....|.if (ev.| |000040b0| 6d 65 73 73 61 67 65 20 | 26 20 31 29 0d 09 09 09 |message |& 1)....| |000040c0| 09 09 09 69 6e 46 6f 72 | 65 67 72 6f 75 6e 64 09 |...inFor|eground.| |000040d0| 3d 09 74 72 75 65 3b 0d | 09 09 09 09 09 65 6c 73 |=.true;.|.....els| |000040e0| 65 0d 09 09 09 09 09 09 | 69 6e 46 6f 72 65 67 72 |e.......|inForegr| |000040f0| 6f 75 6e 64 09 3d 09 66 | 61 6c 73 65 3b 0d 09 09 |ound.=.f|alse;...| |00004100| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 09 09 64 65 |...break|;.....de| |00004110| 66 61 75 6c 74 3a 0d 09 | 09 09 09 09 62 72 65 61 |fault:..|....brea| |00004120| 6b 3b 0d 09 09 09 09 7d | 0d 0d 09 09 09 69 66 20 |k;.....}|.....if | |00004130| 28 65 76 2e 77 68 61 74 | 20 3e 3d 20 30 20 26 26 |(ev.what| >= 0 &&| |00004140| 20 65 76 2e 77 68 61 74 | 20 3c 20 32 34 20 26 26 | ev.what| < 24 &&| |00004150| 20 65 76 74 48 61 6e 64 | 6c 65 72 20 26 26 20 65 | evtHand|ler && e| |00004160| 76 74 48 61 6e 64 6c 65 | 72 5b 65 76 2e 77 68 61 |vtHandle|r[ev.wha| |00004170| 74 5d 29 0d 09 09 09 09 | 65 76 74 48 61 6e 64 6c |t]).....|evtHandl| |00004180| 65 72 5b 65 76 2e 77 68 | 61 74 5d 28 26 65 76 29 |er[ev.wh|at](&ev)| |00004190| 3b 0d 09 09 7d 20 65 6c | 73 65 20 7b 0d 09 09 09 |;...} el|se {....| |000041a0| 6c 6f 6e 67 20 09 65 6e | 64 54 69 63 6b 73 3b 0d |long .en|dTicks;.| |000041b0| 0d 09 09 09 53 79 73 74 | 65 6d 54 61 73 6b 28 29 |....Syst|emTask()| |000041c0| 3b 0d 09 09 09 47 65 74 | 4e 65 78 74 45 76 65 6e |;....Get|NextEven| |000041d0| 74 28 65 76 74 4d 61 73 | 6b 2c 20 26 65 76 29 3b |t(evtMas|k, &ev);| |000041e0| 0d 0d 09 09 09 69 66 20 | 28 65 76 2e 77 68 61 74 |.....if |(ev.what| |000041f0| 20 3e 3d 20 30 20 26 26 | 20 65 76 2e 77 68 61 74 | >= 0 &&| ev.what| |00004200| 20 3c 20 32 34 20 26 26 | 20 65 76 74 48 61 6e 64 | < 24 &&| evtHand| |00004210| 6c 65 72 20 26 26 20 65 | 76 74 48 61 6e 64 6c 65 |ler && e|vtHandle| |00004220| 72 5b 65 76 2e 77 68 61 | 74 5d 29 0d 09 09 09 09 |r[ev.wha|t]).....| |00004230| 65 76 74 48 61 6e 64 6c | 65 72 5b 65 76 2e 77 68 |evtHandl|er[ev.wh| |00004240| 61 74 5d 28 26 65 76 29 | 3b 0d 0d 09 09 09 44 65 |at](&ev)|;.....De| |00004250| 6c 61 79 28 31 2c 20 26 | 65 6e 64 54 69 63 6b 73 |lay(1, &|endTicks| |00004260| 29 3b 0d 09 09 7d 0d 09 | 7d 0d 0d 09 72 65 74 75 |);...}..|}...retu| |00004270| 72 6e 20 30 3b 0d 0d 69 | 6e 74 65 72 72 75 70 74 |rn 0;..i|nterrupt| |00004280| 3a 0d 09 46 6c 75 73 68 | 45 76 65 6e 74 73 28 2d |:..Flush|Events(-| |00004290| 31 2c 20 30 29 3b 0d 0d | 09 72 65 74 75 72 6e 20 |1, 0);..|.return | |000042a0| 2d 31 3b 0d 7d 0d 0d 2f | 2a 2a 2a 2a 2a 2a 2a 2a |-1;.}../|********| |000042b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000042c0| 2a 2a 20 46 65 61 74 75 | 72 65 20 6d 65 6d 62 65 |** Featu|re membe| |000042d0| 72 20 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |r ******|********| |000042e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2f 0d 0d 46 |********|****/..F| |000042f0| 65 61 74 75 72 65 3a 3a | 46 65 61 74 75 72 65 28 |eature::|Feature(| |00004300| 73 68 6f 72 74 20 74 72 | 61 70 4e 75 6d 2c 20 54 |short tr|apNum, T| |00004310| 72 61 70 54 79 70 65 20 | 74 54 79 70 29 0d 7b 0d |rapType |tTyp).{.| |00004320| 09 67 6f 6f 64 20 3d 0d | 09 09 4e 47 65 74 54 72 |.good =.|..NGetTr| |00004330| 61 70 41 64 64 72 65 73 | 73 28 74 72 61 70 4e 75 |apAddres|s(trapNu| |00004340| 6d 2c 20 74 54 79 70 29 | 20 21 3d 20 4e 47 65 74 |m, tTyp)| != NGet| |00004350| 54 72 61 70 41 64 64 72 | 65 73 73 28 5f 55 6e 69 |TrapAddr|ess(_Uni| |00004360| 6d 70 6c 65 6d 65 6e 74 | 65 64 2c 20 54 6f 6f 6c |mplement|ed, Tool| |00004370| 54 72 61 70 29 3b 0d 7d | 0d 0d 46 65 61 74 75 72 |Trap);.}|..Featur| |00004380| 65 3a 3a 46 65 61 74 75 | 72 65 28 4f 53 54 79 70 |e::Featu|re(OSTyp| |00004390| 65 20 74 79 70 65 2c 20 | 6c 6f 6e 67 20 76 61 6c |e type, |long val| |000043a0| 75 65 29 0d 7b 0d 09 6c | 6f 6e 67 09 09 61 74 74 |ue).{..l|ong..att| |000043b0| 72 3b 0d 0d 09 67 6f 6f | 64 20 3d 20 28 21 47 65 |r;...goo|d = (!Ge| |000043c0| 73 74 61 6c 74 28 74 79 | 70 65 2c 20 26 61 74 74 |stalt(ty|pe, &att| |000043d0| 72 29 20 26 26 20 28 61 | 74 74 72 20 3e 3d 20 76 |r) && (a|ttr >= v| |000043e0| 61 6c 75 65 29 29 3b 0d | 7d 0d 0d 46 65 61 74 75 |alue));.|}..Featu| |000043f0| 72 65 3a 3a 46 65 61 74 | 75 72 65 28 4f 53 54 79 |re::Feat|ure(OSTy| |00004400| 70 65 20 74 79 70 65 2c | 20 6c 6f 6e 67 20 6d 61 |pe type,| long ma| |00004410| 73 6b 2c 20 6c 6f 6e 67 | 20 76 61 6c 75 65 29 0d |sk, long| value).| |00004420| 7b 0d 09 6c 6f 6e 67 09 | 09 61 74 74 72 3b 0d 0d |{..long.|.attr;..| |00004430| 09 67 6f 6f 64 20 3d 20 | 28 21 47 65 73 74 61 6c |.good = |(!Gestal| |00004440| 74 28 74 79 70 65 2c 20 | 26 61 74 74 72 29 20 26 |t(type, |&attr) &| |00004450| 26 20 28 28 61 74 74 72 | 20 26 20 6d 61 73 6b 29 |& ((attr| & mask)| |00004460| 20 3d 3d 20 76 61 6c 75 | 65 29 29 3b 0d 7d 0d 0d | == valu|e));.}..| |00004470| 46 65 61 74 75 72 65 3a | 3a 46 65 61 74 75 72 65 |Feature:|:Feature| |00004480| 28 63 6f 6e 73 74 20 46 | 65 61 74 75 72 65 20 26 |(const F|eature &| |00004490| 20 70 72 65 63 6f 6e 64 | 69 74 69 6f 6e 2c 20 4f | precond|ition, O| |000044a0| 53 45 72 72 49 6e 69 74 | 69 61 6c 69 7a 65 72 20 |SErrInit|ializer | |000044b0| 69 6e 69 74 29 0d 7b 0d | 09 67 6f 6f 64 09 3d 09 |init).{.|.good.=.| |000044c0| 70 72 65 63 6f 6e 64 69 | 74 69 6f 6e 20 26 26 20 |precondi|tion && | |000044d0| 21 69 6e 69 74 28 29 3b | 0d 7d 0d 0d 46 65 61 74 |!init();|.}..Feat| |000044e0| 75 72 65 3a 3a 46 65 61 | 74 75 72 65 28 4f 53 45 |ure::Fea|ture(OSE| |000044f0| 72 72 49 6e 69 74 69 61 | 6c 69 7a 65 72 20 69 6e |rrInitia|lizer in| |00004500| 69 74 29 0d 7b 0d 09 67 | 6f 6f 64 09 3d 09 21 69 |it).{..g|ood.=.!i| |00004510| 6e 69 74 28 29 3b 0d 7d | 0d 0d 46 65 61 74 75 72 |nit();.}|..Featur| |00004520| 65 3a 3a 46 65 61 74 75 | 72 65 28 63 6f 6e 73 74 |e::Featu|re(const| |00004530| 20 46 65 61 74 75 72 65 | 20 26 20 70 72 65 63 6f | Feature| & preco| |00004540| 6e 64 69 74 69 6f 6e 2c | 20 76 6f 69 64 49 6e 69 |ndition,| voidIni| |00004550| 74 69 61 6c 69 7a 65 72 | 20 69 6e 69 74 29 0d 7b |tializer| init).{| |00004560| 0d 09 69 66 20 28 70 72 | 65 63 6f 6e 64 69 74 69 |..if (pr|econditi| |00004570| 6f 6e 29 09 7b 0d 09 09 | 67 6f 6f 64 20 3d 20 74 |on).{...|good = t| |00004580| 72 75 65 3b 0d 09 09 69 | 6e 69 74 28 29 3b 0d 09 |rue;...i|nit();..| |00004590| 7d 20 65 6c 73 65 0d 09 | 09 67 6f 6f 64 20 3d 20 |} else..|.good = | |000045a0| 66 61 6c 73 65 3b 0d 7d | 0d 0d 46 65 61 74 75 72 |false;.}|..Featur| |000045b0| 65 3a 3a 46 65 61 74 75 | 72 65 28 76 6f 69 64 49 |e::Featu|re(voidI| |000045c0| 6e 69 74 69 61 6c 69 7a | 65 72 20 69 6e 69 74 29 |nitializ|er init)| |000045d0| 0d 7b 0d 09 67 6f 6f 64 | 20 3d 20 74 72 75 65 3b |.{..good| = true;| |000045e0| 0d 09 69 6e 69 74 28 29 | 3b 0d 7d 0d 0d 46 65 61 |..init()|;.}..Fea| |000045f0| 74 75 72 65 3a 3a 46 65 | 61 74 75 72 65 28 63 6f |ture::Fe|ature(co| |00004600| 6e 73 74 20 46 65 61 74 | 75 72 65 20 26 20 63 6f |nst Feat|ure & co| |00004610| 6e 64 31 2c 20 63 6f 6e | 73 74 20 46 65 61 74 75 |nd1, con|st Featu| |00004620| 72 65 20 26 20 63 6f 6e | 64 32 29 0d 7b 0d 09 67 |re & con|d2).{..g| |00004630| 6f 6f 64 20 3d 20 63 6f | 6e 64 31 20 26 26 20 63 |ood = co|nd1 && c| |00004640| 6f 6e 64 32 3b 0d 7d 0d | 0d 4f 53 45 72 72 20 41 |ond2;.}.|.OSErr A| |00004650| 70 70 6c 65 54 61 6c 6b | 49 64 65 6e 74 69 74 79 |ppleTalk|Identity| |00004660| 28 73 68 6f 72 74 20 26 | 20 6e 65 74 2c 20 73 68 |(short &| net, sh| |00004670| 6f 72 74 20 26 20 6e 6f | 64 65 29 0d 7b 0d 09 73 |ort & no|de).{..s| |00004680| 74 61 74 69 63 20 73 68 | 6f 72 74 09 6d 79 6e 65 |tatic sh|ort.myne| |00004690| 74 3b 0d 09 73 74 61 74 | 69 63 20 73 68 6f 72 74 |t;..stat|ic short| |000046a0| 09 6d 79 6e 6f 64 65 3b | 0d 09 73 74 61 74 69 63 |.mynode;|..static| |000046b0| 20 4f 53 45 72 72 09 65 | 72 72 20 3d 20 31 3b 0d | OSErr.e|rr = 1;.| |000046c0| 0d 09 69 66 20 28 65 72 | 72 20 3d 3d 20 31 29 0d |..if (er|r == 1).| |000046d0| 09 09 69 66 20 28 21 28 | 65 72 72 20 3d 20 4d 50 |..if (!(|err = MP| |000046e0| 50 4f 70 65 6e 28 29 29 | 29 0d 09 09 09 65 72 72 |POpen())|)....err| |000046f0| 20 3d 20 47 65 74 4e 6f | 64 65 41 64 64 72 65 73 | = GetNo|deAddres| |00004700| 73 28 26 6d 79 6e 6f 64 | 65 2c 20 26 6d 79 6e 65 |s(&mynod|e, &myne| |00004710| 74 29 3b 0d 0d 0d 09 6e | 65 74 09 3d 09 6d 79 6e |t);....n|et.=.myn| |00004720| 65 74 3b 0d 09 6e 6f 64 | 65 09 3d 09 6d 79 6e 6f |et;..nod|e.=.myno| |00004730| 64 65 3b 0d 0d 09 72 65 | 74 75 72 6e 20 65 72 72 |de;...re|turn err| |00004740| 3b 0d 7d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |;.}.....|........| |00004750| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004770| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004780| 00 00 01 00 00 00 01 fe | 00 00 00 fe 00 00 00 68 |........|.......h| |00004790| 73 20 61 20 6e 69 63 65 | 20 6c 69 74 74 6c 65 20 |s a nice| little | |000047a0| 65 78 74 72 61 20 74 68 | 61 74 20 6d 61 6b 65 73 |extra th|at makes| |000047b0| 0f 47 55 53 49 44 69 73 | 70 61 74 63 68 2e 63 70 |.GUSIDis|patch.cp| |000047c0| 02 00 00 00 54 45 58 54 | 4d 50 53 20 00 00 01 a0 |....TEXT|MPS ....| |000047d0| 00 00 54 45 58 54 4d 50 | 53 20 00 00 01 a0 01 00 |..TEXTMP|S ......| |000047e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000047f0| 00 00 a5 f5 5c d8 00 00 | 46 c3 00 00 02 66 6c 69 |....\...|F....fli| |00004800| 6e 67 20 61 6e 79 20 6f | 66 20 74 68 65 69 72 0d |ng any o|f their.| |00004810| 20 20 20 20 20 20 20 20 | 63 61 6c 6c 20 62 61 63 | |call bac| |00004820| 6b 20 70 72 6f 63 65 64 | 75 72 65 73 2c 20 70 75 |k proced|ures, pu| |00004830| 73 68 65 73 20 74 68 65 | 20 65 78 74 72 61 20 70 |shes the| extra p| |00004840| 61 72 61 6d 65 74 65 72 | 20 6f 66 20 79 6f 75 72 |arameter| of your| |00004850| 44 61 74 61 50 74 72 20 | 6f 6e 0d 20 20 20 20 20 |DataPtr |on. | |00004860| 20 20 20 74 68 65 20 73 | 74 61 63 6b 2e 0d 20 20 | the s|tack.. | |00004870| 20 20 0d 20 20 20 20 20 | 20 20 20 49 6e 20 61 64 | . | In ad| |00004880| 00 00 00 72 68 ef 0a 53 | 3f e5 32 30 00 04 00 0b |...rh..S|?.20....| |00004890| 00 00 00 00 00 00 a7 7f | 0f b9 a7 7f 0f b9 a6 71 |........|.......q| |000048a0| 49 ef 00 00 bf be 00 01 | 00 08 00 0a 05 47 55 53 |I.......|.....GUS| |000048b0| 49 ba 00 05 6e 65 65 72 | 69 00 02 31 30 00 0f 47 |I...neer|i..10..G| |000048c0| 55 53 49 44 69 73 70 61 | 74 63 68 2e 63 70 00 00 |USIDispa|tch.cp..| |000048d0| 00 00 22 42 65 20 6d 6f | 72 65 20 63 61 72 65 66 |.."Be mo|re caref| |000048e0| 75 6c 20 61 62 6f 75 74 | 20 75 73 65 72 20 61 62 |ul about| user ab| |000048f0| 6f 72 74 73 2e 00 00 00 | 00 48 00 09 4d 6f 6e 61 |orts....|.H..Mona| |00004900| 63 6f 00 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |co.*****|********| |00004910| 2a 2a 2a 2a 0d 50 72 6f | 6a 65 63 74 00 06 00 03 |****.Pro|ject....| |00004920| 01 62 00 61 03 03 02 7a | 01 40 fd 08 02 e1 ff 21 |.b.a...z|.@.....!| |00004930| a7 7f 26 92 00 00 1a 37 | 00 00 1a 38 00 00 3d 37 |..&....7|...8..=7| |00004940| 01 00 00 00 00 16 00 01 | 00 00 03 c4 00 00 03 f6 |........|........| |00004950| 0b 4c 61 73 74 43 68 61 | 6e 67 65 00 00 00 00 1e |.LastCha|nge.....| |00004960| 01 62 00 61 03 03 02 7a | 01 40 fd 08 02 e1 ff 21 |.b.a...z|.@.....!| |00004970| 00 00 3d 37 00 00 00 00 | 00 00 00 00 00 00 00 00 |..=7....|........| |00004980| 01 00 00 00 01 fe 00 00 | 00 fe 00 00 00 68 01 8e |........|.....h..| |00004990| e2 a0 06 40 00 00 00 1c | 00 5e 00 01 4d 50 53 52 |...@....|.^..MPSR| |000049a0| 00 02 00 12 63 6b 69 64 | 00 00 00 36 03 ed ff ff |....ckid|...6....| |000049b0| 00 00 00 76 00 00 00 00 | 03 ef ff ff 00 00 00 c2 |...v....|........| |000049c0| 00 00 00 00 03 f0 ff ff | 00 00 00 dc 01 95 16 78 |........|.......x| |000049d0| 00 80 00 00 00 00 00 00 | 00 00 00 00 09 50 72 6f |........|.....Pro| |000049e0| 6a 65 63 74 6f 72 00 00 | 00 00 00 00 00 00 00 00 |jector..|........| |000049f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| +--------+-------------------------+-------------------------+--------+--------+